简洁高效的 JavaScript 汉字编码转换
2008-04-14 11:57 | 分类 WebDev | By ming | 发表评论 »
无意中搜索到关于js汉字编码转换的东东,不过网上写的都不够简洁,所以修改了下。
js关于汉字转换成ascii或unicode主要是用escape及与 正则表达式 replace来完成,反过来的话则比较简单。。
String.cnStringToAscii = function(cnString) {//汉字转换ascii
return escape(cnString).replace(/%u/g, '\&#x');
};
String.cnStringToUnicode = function(cnString) {//汉字转换unicode
return escape(cnString).replace(/%/g, '\\');
};
/**
*charCodes ascii或unicode字符串
*regexp 匹配规则
*/
String.charCodeToCnString = function(charCodes, regexp) {
return charCodes.replace(regexp, function($0, $1, $2) {
return String.fromCharCode(
parseInt($2, 16)/*把16进制的字符串转换成int型数字*/
);
});
};
String.asciiToCnString = function(asciiChars) {//ascii转换成汉字
return String.charCodeToCnString(asciiChars, /(\&#x)(\w{4})/gi);
};
String.unicodeToCnString = function(unicodeChars) {//unicode转换成汉字,高效的..
/*unicode转换成汉字不需要像ascii那么麻烦*/
return unicodeChars + '';//虽然它已经是String类型,但再这样转换成String类型,居然直接变汉字了。
//unicodeChars.split('\\u')[0];split也可以变成汉字,可以用任意'非中文字符'来split,如'\\','safdasf'等等。
//unicodeChars.split('').join('');//也是可以的,这样每个字都成为数组的一个元素,与上一句一样
//return String.charCodeToCnString(unicodeChars, /(\&#x)(\w{4})/gi); 这个效率最差
};
转载请遵循"署名-非商业性使用-相同方式共享" 的创作共用协议。
留下评论
(如发言后未显示则有待审核)

