王志勇 发表于 2013年04月16日 09:06
例如在GBK/或GB2312编码模式下,要对相应的UTF-8页的数据进行处理,这时候通过JavaScript+iframe框架就能达意想不到的效果。利用这个原理,也可以把整站的文件批量在UTF-8和GBK/或GB2312编码中互换。但它唯一的缺点是,只能是父框架页和子框架页之间互相赋值,这时必须做一个数据提交的程序,才能转换编码,也就是说,在自动赋值之后,需要鼠标点击一下进行提交才能实现对要写入的数据进行编码转换。这个缺点,可以用JavaScript的submit()函数实现自动提交。以PHP为例,写入数据的编码格式,是取决于<meta>标签里声明的charset。
由于时间的关系,就不做具体的实例了,因为做一个具体的实例要花费很多的时间,重要的步骤一是使用iframe标签嵌入一个子框架页,子框架页的编码与父框架页的编码不同。重要的步骤二是必须掌握父框架页和子框架页互相赋值的方法,子框架页给父框架页赋值的方法比较简单,就是top.***.innerHTML,或者是top.***.value,方法和在同一页赋值的方法一样,只是多了一个top加点儿。
相反的,父框架页给子框架页赋值,就复杂很多,昨天测试了一下午才成功。父框架页给子框架页赋值,写直接赋值的命名语句不给赋值,必须建立自定义函数才能赋值。网上几乎没有这个直接赋值的方法,我找了很久都没找到,网上的方法是需要通过鼠标点击触发事件,才能赋值,可以在Google或百度搜索“iframe 赋值”。我把它改成<body onload=abc();>,最后完美地成功了。这个abc()自定义函数为:function abc(){document.frames['aac'].document.all.da.value="赋值";}。说明:这里的aac代表的是iframe里的name=。后面的document.all.da.value,其中da是子框架页里一个表单框的名字,这里必须写为document.all.da.value,document.all不能省略,否则不给赋值。如果子框架页里的表单da所在的form有名称,例如<form method=post name=ag>,那么这个abc()也可以写为:function abc(){document.frames['aac'].ag.da.value="赋值";}。
本文是提供一种重要的方法,2个重要的步骤,希望读者能够熟练掌握这个方法。要熟练掌握,可能至少要花一天时间做测试。这个方法,在大型或者小型的程序里,在必要的时候能够发挥重要的作用。特别是在一个混合编码的网站,这是一种极好的方法。没有更具体的代码了,上述的步骤已经写得很清楚了。当然,如果万一出现赋值时出现乱码,就可以通过复制、粘贴、提交来转换编码。例如百度的网站,就是成功地使用UTF-8和GBK两种编码,而没有产生乱码。
我在前面的文章写过,中文如果使用GB2312或GBK编码,可以节省很多字节。而英文的编码,无论是UTF-8还是GBK,字节数量都是一样的,韩文则必须使用UTF-8编码。这是因为,在UTF-8编码下,中文汉字、英文字母、韩文单字所占的字节分别为:3、1、3;在GB2312或编码GBK下,中文汉字、英文字母、韩文单字所占的字节分别为:2、1、8。在GB2312或编码GBK下,文本格式为ANSI,ANSI文件格式无法保存韩文或全角的Unicode码,字符会被转化成한국어的形式(한국어)。
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
夜晚靓歌(10):你没看过的《星雨心愿》
Feedval、Blogval将下线/谈理财和生存
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +