UTF8编码页面提交参数登录到GB2312编码处理

 

一个UTF8页面需要POST数据到GB2312页面,这时中文的编码是按照UTF8提交过去的,GB2312页面无法接收。如何实现,网络搜索了一种很不错的方法,但有缺陷,这里一一说起。

1、FORM标签里加上accept-charset代码,这个能把FORM里的数据自动编码成指定的字符集提交,比如在UTF8页面提交数据到GB2312,代码就是accept-charset=”GB2312″,但accept-charset除了IE其他浏览器都支持。。。

2、这时可以在提交时触发JS,document.charset=’GB2312′;,用这段代码设置当前页面编码为GB2312。到这里看似很完美了,但还一个问题,就是触发这个代码后,当前页面刷新之后会乱码,这是因为你刚才改变了当前页面的编码。

3、怎么处理刷新后乱码呢,就是要加以判断,判断当前页面编码和默认的编码是否一致,如果不一致则刷新,if(isIE && document.charset!=”utf-8″)location.reload(false)

4、网上的介绍最多到这步,但是我却发现,这样就步入了一个死循环,因为第2步已经改变了编码,您在当前页面不管怎样刷新,还是改变后的编码,所以一定要重设这个编码才行,代码就是这样的。
if(isIE && document.charset!=”utf-8″){
document.charset=’utf-8′;
location.reload(false);}


代码综合起来如下:
判断当前页码是否为UTF8,如果不是,则设定编码为UTF8并刷新,避免乱码。
var isIE=!!window.ActiveXObject;
if(isIE && document.charset!=”utf-8″){
document.charset=’utf-8′;
location.reload(false);}

设定FORM的accept-charset,让非IE浏览器直接提交编码后的数据到其他页面

提交数据时触发修改当前页面编码的JS
οnsubmit=”if(isIE)document.charset=’GB2312′”


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 易语言作为一种比较流行的编程语言,在编码过程中有时需要对编码进行转换,其中GB2312和UTF-8都是常见的编码方式。以下是易语言GB2312转UTF-8编码的教学过程。 首先,我们需要先创建一个易语言工程,并添加主程序和界面程序。然后,在界面程序中添加一个按钮和一个编辑框,按钮上设置“转换”文字。接着,我们需要在按钮的单击事件中添加相关的代码。 在代码中,我们先获取编辑框中的文本,然后使用gb2utf8函数进行编码转换。具体操作如下: 1. 在“眼睛”选项卡中勾选“不编译主程序全局变量”。 2. 在“编译”选项卡中勾选“添加tu2f8文件”。 3. 在按钮单击事件中添加以下代码: ``` 编辑框内容 = 界面信息框内容读取(1, 1); 编码转换结果 = gb2utf8(编辑框内容); 界面信息框内容清空(2, 1); 界面信息框内容输出(2, 1, 编码转换结果); ``` 其中,编辑框内容为原始文本,界面信息框用于输出转换后的结果。 4. 添加模块tu2f8.txt并添加以下代码: ``` //模块名称:tu2f8 //作者:youngsterxyf //介绍:GB2312转UTF-8编码 //版本:1.0 def gb2utf8(GBString): t = GBString.split(CHR(0)+CHR(0)) if len(t) > 1: t0 = t.pop(0) return t0 + CHR(0) + CHR(0) + ''.join([chr(b) for b in bytes(t[0], 'gb2312')]).encode('utf-8').decode() else: return ''.join([chr(b) for b in bytes(GBString, 'gb2312')]).encode('utf-8').decode() ``` 以上就是易语言GB2312转UTF-8编码的教学过程,大家可以自行尝试编写并练习。注意,以上代码仅作为演示,具体实现还需要按照自己的需求进行修改。 ### 回答2: 简单来说,将易语言采用的gb2312编码转换为utf8编码,可以分为以下几个步骤: 第一步,将gb2312编码转换为Unicode编码。在易语言中,可以使用Str.UnicodeToStr函数实现转换,例如: UnicodeCode = Str.UnicodeToStr(GBCode, "gb2312") 这里的GBCode就是原始的gb2312编码字符串,UnicodeCode则是转换后的Unicode编码字符串。 第二步,将Unicode编码转换为utf8编码。同样地,使用Str.UnicodeToUTF8函数可以实现转换,例如: UTF8Code = Str.UnicodeToUTF8(UnicodeCode) 这里的UnicodeCode就是第一步转换后得到的Unicode编码字符串,UTF8Code则是转换后的utf8编码字符串。 第三步,将utf8编码重新写入文件。由于utf8编码是一种多字节编码方式,所以要使用二进制方式打开文件,并写入转换后的utf8编码数据。使用EasyFile对象可以方便地实现这一过程,例如: File.Open(EasyFilePath, fmOpenWrite or fmShareExclusive or fmShareDenyNone) File.Seek(0, fssoFromEnd) File.Write(UTF8Code) File.Close() 这里的EasyFilePath就是要写入的文件路径,fmOpenWrite指示以写方式打开文件,fmShareExclusive指示以独占方式共享文件,fmShareDenyNone指示不限制其他进程或线程的访问权限,File.Write函数则将转换后的utf8编码数据写入文件。 通过以上几个步骤,就可以将原始的gb2312编码字符串转换为utf8编码字符串,并写入文件中。需要注意的是,在进行编码转换时,需要确保原始数据的编码方式正确,否则会产生转换错误或乱码等问题。 ### 回答3: 易语言是一种高级编程语言,可以用来开发Windows系统下的应用程序。它的编码方式分为两种:gb2312和utf-8。 gb2312是中文字符集,最多可以表示6763个汉字和682个非汉字字符。utf-8则是一种Unicode编码格式,它支持全球各地的语言,包括中文。 在易语言中将gb2312转换为utf-8编码可以使用以下方法: 1. 打开易语言软件,创建一个新的工程,并打开主模块。 2. 在主模块中新增一个按钮,以便触发转换操作。 3. 在按钮的单击事件中,编写代码以便将gb2312转换为utf-8编码。 4. 代码中需要使用相关的函数,如“gbktoUtf8”函数和“mbslen”函数等。 例如,在单击事件代码中,可以使用以下代码: procedure Button1_OnClick; var   str: string;   len: integer; begin   str := '易语言编程';   len := mbslen(str);   SetLength(str, len + 1);   gbktoUtf8(PChar(str));   Messagebox('转换后的字符串为:' + str); end; 5. 在运行程序后,点击按钮会将gb2312编码的字符串转换为utf-8编码,并将转换后的字符串显示在消息框中。 总之,易语言gb2312utf8编码需要借助相关的函数和代码来实现。如果了解相关的函数和编码知识,便可以轻松完成这个任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值