[size=medium]在文件编码为gb2312的html文件中,提交表单到utf8页面中会出现乱码的现象,针对这样的问题既可以从前端下手也可以从后端进行处理,为了方便,决定从前端下手,从网上搜集到了相关js特分享如下:[/size]
[code="js"]
<script language="JavaScript">
<!--
function utf8(wide) {
var c, s;
var enc = "";
var i = 0;
while(i<wide.length) {
c= wide.charCodeAt(i++);
// handle UTF-16 surrogates
if (c>=0xDC00 && c<0xE000) continue;
if (c>=0xD800 && c<0xDC00) {
if (i>=wide.length) continue;
s= wide.charCodeAt(i++);
if (s<0xDC00 || c>=0xDE00) continue;
c= ((c-0xD800)<<10)+(s-0xDC00)+0x10000;
}
// output value
if (c<0x80) enc += String.fromCharCode(c);
else if (c<0x800) enc += String.fromCharCode(0xC0+(c>>6),0x80+(c&0x3F));
else if (c<0x10000) enc += String.fromCharCode(0xE0+(c>>12),0x80+(c>>6&0x3F),0x80+(c&0x3F));
else enc += String.fromCharCode(0xF0+(c>>18),0x80+(c>>12&0x3F),0x80+(c>>6&0x3F),0x80+(c&0x3F));
}
return enc;
}
var hexchars = "0123456789ABCDEF";
function toHex(n) {
return hexchars.charAt(n>>4)+hexchars.charAt(n & 0xF);
}
var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
function encodeURIComponentNew(s) {
var s = utf8(s);
var c;
var enc = "";
for (var i= 0; i<s.length; i++) {
if (okURIchars.indexOf(s.charAt(i))==-1)
enc += "%"+toHex(s.charCodeAt(i));
else
enc += s.charAt(i);
}
return enc;
}
alert(encodeURIComponentNew("中文"))
alert(decodeURIComponent(encodeURIComponentNew("中文")))
// -->
</script>
[/code]
分享到:
相关推荐
JS GB2312TOUTF8 UTF8TOGB2312 编码转换 /* * GB2312转UTF8 * 例: * var xx=new GB2312UTF8(); * var Utf8=xx.Gb2312ToUtf8("你aaa好aaaaa"); * var Gb2312=xx.Utf8ToGb2312(Utf8); * ...
用javascript实现gb2312转utf-8的脚本 本文讲解如何使用javascript实现gb2312编码到utf-8编码的转换。gb2312是中国国家标准的汉字编码字符集,共分两级,第一级为常用字,有3755字,第二级为次常用字,有3008字。...
3. **字节流到目标编码转换**:最后,根据不同的编码规则(GB2312或UTF-8),将字节流转换为目标编码的字符串。 ### 实现代码详解 #### 1. 字符串到十六进制转换 ```javascript function Str2Hex(s) { var c = "...
在JavaScript中,编码转换是一个常见的任务,特别是在处理中文字符时,因为不同的编码标准如UTF-8和GB2312可能会导致乱码问题。这里,我们有两个函数:`UrlEncode` 和 `getSpell`,它们用于将UTF8编码的字符串转换为...
在这个“Url编码转换程序”中,包含了两种重要的编码方式:GB2312和UTF-8。GB2312是中国大陆广泛使用的简体中文字符集,它包含6763个汉字,主要用于早期的计算机系统。而UTF-8是一种变长的Unicode编码,它可以表示...
在JavaScript中,编码转换是处理不同字符编码格式之间转换的过程,比如从GBK(GB2312)到UTF-8,反之亦然。这在处理中文字符时尤其重要,因为不同的编码方式对汉字的支持和表示方式有所不同。以下是两种在JavaScript...
js 原生只支持utf-8,扩展 js转换成GB2312,js 原生只支持utf-8,扩展 js转换成GB2312,js 原生只支持utf-8,扩展 js转换成GB2312,
转换码表是用来进行不同编码间转换的关键工具,例如,如果你有一个使用GB18030编码的文本文件,而你的系统或程序只支持Unicode,那么就需要一个转换码表来将GB18030编码的文本转换成UTF-8或其他Unicode编码。...
2. 将Unicode编码转换为GB2312编码。这一步需要一个映射表,将Unicode编码映射到对应的GB2312编码。因为JavaScript本身不提供这个映射,所以我们需要自己创建或者引用一个这样的映射表。 3. 对于每个Unicode编码,将...
该“GB转UTF8字符工具”可能采用了一种解析和重新编码的方式来实现编码转换。在处理过程中,它会读取源文件的每个字节,根据源编码规则解码得到原始字符,然后按照目标编码规则重新编码这些字符并写入新文件。这样的...
"GB2UTF8"转换工具就是为此目的设计的,它允许用户将网站的HTML、CSS、JavaScript等文件从GB2312编码转换为UTF-8,反之亦然。这大大减轻了手动修改大量文件的工作量,提高了效率。工具的核心功能包括: 1. 批量转换...
例如,如果一个GB2312编码的网页需要展示繁体中文内容,可以使用这些JavaScript代码将GB2312编码的简体中文转换为UTF-8编码的繁体中文。反之,如果用户需要查看简体版,也可以进行反向转换。 需要注意的是,由于...
本篇文章将详细解析`GB`转`UTF-8`的过程,以及为何需要进行这样的转换。 1. **GB系列编码** `GB`(Great Wall,大字符集)是中国大陆广泛使用的汉字编码标准,主要包括`GBK`(国标扩展)和`GB2312`。`GB2312`是最...
在提供的"UTF-8GB2312互转.exe"文件中,很可能是实现了一个简单的命令行工具,用于快速将UTF-8编码的文件转换为GB2312,或者反之。使用这样的工具,用户可以在本地环境下方便地解决文件编码不匹配导致的乱码问题。但...
想到如下特征来识别汉字: 1. 如果第1位是0就不需要判断的,一定是ASCII字符。... 如果第1位是1开头的,第2位是0开头的,一定是GB编码。 3. 如果第1位是非1110开头的,则一定是GB编码。 4. 多做几个汉字判断。
总之,"GB/BIG5/UTF-8 文件编码批量转换工具"是解决多语言环境下编码不一致问题的有效手段,它简化了文件编码转换的过程,提高了工作效率。在处理中文文本时,尤其是涉及简体和繁体转换,或者需要向国际化的UTF-8...
UTF8文件编码转换器是一种工具,它允许用户将文件从一种字符编码格式转换为UTF-8编码格式。在计算机科学和网页开发领域,文件编码是非常关键的,因为它决定了文本如何被正确地读取和显示。UTF-8是目前最常用的多语言...
本文将深入探讨PHP中的字符编码转换,特别是针对ANSI、Unicode(包括Little Endian和Big Endian)、UTF-8以及UTF-8+BOM的转换。 首先,让我们了解这些编码格式的含义: 1. ANSI编码:通常指的是Windows系统的默认...
易语言JS实现编码转换的核心在于理解字符编码的基本原理,如ASCII、GB2312、GBK、Big5、UTF-8等。每种编码都有其特定的字节序列表示字符,转换过程中需要正确解析和重构这些序列。在易语言中,可以使用“字符串”和...