请教网上看到的一个 GBK转utf-8的编码的例子
结果发现 “【”的编码 转换不太正确
<script type="text/javascript">
var easyUTF8 = function(gbk){
if(!gbk){return '';}
var utf8 = [];
for(var i=0;i<gbk.length;i++){
var s_str = gbk.charAt(i);
if(!(/^%u/i.test(escape(s_str)))){utf8.push(s_str);continue;}
var s_char = gbk.charCodeAt(i);
var b_char = s_char.toString(2).split('');
var c_char = (b_char.length==15)?[0].concat(b_char):b_char;
var a_b =[];
a_b[0] = '1110'+c_char.splice(0,4).join('');
a_b[1] = '10'+c_char.splice(0,6).join('');
a_b[2] = '10'+c_char.splice(0,6).join('');
for(var n=0;n<a_b.length;n++){
utf8.push('%'+parseInt(a_b[n],2).toString(16).toUpperCase());
}
}
return utf8.join('');
};
document.write(easyUTF8('【'));
</script>
结果输出 %EC%81%20 但是 实际正确的utf-8编码 应该是 %E3%80%90
是哪里出问题了?我对js其实不太了解,以前朋友帮忙写的js,
还望不吝赐教谢谢
结果发现 “【”的编码 转换不太正确
<script type="text/javascript">
var easyUTF8 = function(gbk){
if(!gbk){return '';}
var utf8 = [];
for(var i=0;i<gbk.length;i++){
var s_str = gbk.charAt(i);
if(!(/^%u/i.test(escape(s_str)))){utf8.push(s_str);continue;}
var s_char = gbk.charCodeAt(i);
var b_char = s_char.toString(2).split('');
var c_char = (b_char.length==15)?[0].concat(b_char):b_char;
var a_b =[];
a_b[0] = '1110'+c_char.splice(0,4).join('');
a_b[1] = '10'+c_char.splice(0,6).join('');
a_b[2] = '10'+c_char.splice(0,6).join('');
for(var n=0;n<a_b.length;n++){
utf8.push('%'+parseInt(a_b[n],2).toString(16).toUpperCase());
}
}
return utf8.join('');
};
document.write(easyUTF8('【'));
</script>
结果输出 %EC%81%20 但是 实际正确的utf-8编码 应该是 %E3%80%90
是哪里出问题了?我对js其实不太了解,以前朋友帮忙写的js,
还望不吝赐教谢谢
解决方案 »
- 关于IE禁用cookie问题?为什么禁用不掉呢?Firefox和opera都可以禁用掉,唯独IE。。。。
- 关于Aptana过滤中文字符的问题
- 值传递问题
- 原本是alert("中文");,但因为解析器的原因,所有中文都输出成这样,alert("中文");,(好像是Unicode的编码)
- 请问:如何在点击事件中切换图片?
- 请教一个简单的关于window.event.srcElement的问题。谢谢
- IE5.0中实现对Iframe内容打印最灵活的方法?节前给分
- 初学JavaScript的菜鸟的问题,高手过来看看啊。。。
- 向大家推荐一款支持Html,Css,Js,Vbs,Asp,Sql,Vml,Dhtml的软件
- 敬请指教:关于document.all.item("")的问题!
- 帮忙修改个焦点图自动切换的代码
- js调用,转义问题
initTip: function(doc) {
superlixueshi.ajax({
url: superlixueshi.server+"?title="+superlixueshi.easyUTF8(top.window.document.title)+"&url="+encodeURIComponent(top.window.document.URL),
dataType: 'json',
callback: function(data) {
if(data){
superlixueshi.createTip(data);
}
}
});
请问 还有别的好的方法 没有
url: superlixueshi.server+"?title="+escape(top.window.document.title)+"&url="+escape(top.window.document.URL),