当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JS 文字符串转换unicode编码函数

Javascript
在Z-Blog中运行代码[html][/html](纯JS版)
统一接口:为FireFox添加IE的方法和属性的js代码
网页自动刷新,不产生嗒嗒声的一个解决方法
驱动事件的addEvent.js代码
[原创]提供复制本站内容时出现,该文章转自IT学习网等字样的js代码
CSDN轮换广告图片轮换效果
一段多浏览器的"复制到剪贴板"javascript代码
Javascript中的常见排序算法
JS Common 2 之比较常用到的函数
非正则实现的只能输入汉字的输入框
CSDN上快速结贴的方法,JS实现
js eval木马代码,以后再分析吧
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
一个不错的可以检测多中浏览器的函数和其它功能
状态栏显示欢迎信息的脚本特效
关于文本限制字数的js代码
在你的网页中嵌入外部网页的方法
在IE中调用javascript打开Excel的代码(downmoon原作)
javascript实现动态增加删除表格行(兼容IE/FF)
javascript中获取选中对象的类型

Javascript 中的 JS 文字符串转换unicode编码函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 411 ::
收藏到网摘: n/a

AJAX传递中文字符串时必须把中文字符串编码成unicode,一般会用到JS的自带函数escape().不过找到了更好的函数来确决中文字符转换成unicode编码的函数
复制代码 代码如下:

function uniencode(text)
{
text = escape(text.toString()).replace(/\+/g, "%2B");
var matches = text.match(/(%([0-9A-F]{2}))/gi);
if (matches)
{
for (var matchid = 0; matchid < matches.length; matchid++)
{
var code = matches[matchid].substring(1,3);
if (parseInt(code, 16) >= 128)
{
text = text.replace(matches[matchid], '%u00' + code);
}
}
}
text = text.replace('%25', '%u0025');
return text;
}

当然服务器端要对编码过的字符串进行第二次转码.把字符串转换成UTF-8编码.
复制代码 代码如下:

function convert_int_to_utf8($intval)
{
$intval = intval($intval);
switch ($intval)
{
// 1 byte, 7 bits
case 0:
return chr(0);
case ($intval & 0x7F):
return chr($intval);
// 2 bytes, 11 bits
case ($intval & 0x7FF):
return chr(0xC0 | (($intval >> 6) & 0x1F)) .
chr(0x80 | ($intval & 0x3F));
// 3 bytes, 16 bits
case ($intval & 0xFFFF):
return chr(0xE0 | (($intval >> 12) & 0x0F)) .
chr(0x80 | (($intval >> 6) & 0x3F)) .
chr (0x80 | ($intval & 0x3F));
// 4 bytes, 21 bits
case ($intval & 0x1FFFFF):
return chr(0xF0 | ($intval >> 18)) .
chr(0x80 | (($intval >> 12) & 0x3F)) .
chr(0x80 | (($intval >> 6) & 0x3F)) .
chr(0x80 | ($intval & 0x3F));
}
}

这样中文字符串就可以转换成UTF-8编码.这种方法适合各种服务器环境..