怎么用JavaScript将“你好”转换成GB2312编码

leo9239339 2010-08-27 11:42:42
var str="你好" // 此编码为Unicode;
我想知道怎么将它转换成GB2312的编码
...全文
330 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoojo 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yixianggao 的回复:]

引用楼主 leo9239339 的回复:
var str="你好" // 此编码为Unicode;
我想知道怎么将它转换成GB2312的编码

结果是 %E6%B5%A3%E7%8A%B2%E3%82%BD,自己看代码

L@_@K
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "……
[/Quote]
+
yixianggao 2010-08-27
  • 打赏
  • 举报
回复
如果不加那个 meta,结果就是 utf-8 %E4%BD%A0%E5%A5%BD!

Web 开发常用手册

DHTML 参考手册
http://download.csdn.net/source/308913

JScript 语言参考
http://download.csdn.net/source/308916

CCS 样式表中文手册
http://download.csdn.net/source/304124
yixianggao 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 leo9239339 的回复:]
var str="你好" // 此编码为Unicode;
我想知道怎么将它转换成GB2312的编码
[/Quote]
结果是 %E6%B5%A3%E7%8A%B2%E3%82%BD,自己看代码

L@_@K
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="yixianggao@126.com" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<!-- 这句是关键! -->
<meta http-equiv="content-type" content="text/html;charset=gb2312">
</head>
<body>
<script type="text/javascript">
<!--
var hello = "你好";
document.write(document.charset + "<br />");
document.write(encodeURI(hello));

// gb2312
// %E6%B5%A3%E7%8A%B2%E3%82%BD

// utf-8
// %E4%BD%A0%E5%A5%BD

//-->
</script>
</body>
</html>
wlwwp 2010-08-27
  • 打赏
  • 举报
回复
为啥要转码呢,统一uri编码比较好
wcwtitxu 2010-08-27
  • 打赏
  • 举报
回复

var str = "你好";
str = str.replace(/[^\u0000-\u00FF]/g, function($0) { return escape($0).replace(/(%u)(\w{4})/gi, "&#x$2;") });


楼主的所提问题跟这个答案 似乎完全搭不上道
natineprince 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 leo9239339 的回复:]
能啊 这样做就可以了

var str="你好";
str = str.replace(/[^\u0000-\u00FF]/g, function($0) { return escape($0).replace(/(%u)(\w{4})/gi, "&#x$2;") });

然后就可以了
哎没办法 这分就当送给你们了
[/Quote]
你这个只是把UNICODE编码替换出来而已.
JS内部只有UNICODE编码.不能变更的...
KAI3000 2010-08-27
  • 打赏
  • 举报
回复
7楼那不是GB2312b编码,那是字参码。
KAI3000 2010-08-27
  • 打赏
  • 举报
回复
是的,js不能转换编码,如果是不同编码的页面之间表单提交的话,可以用另外一种办法解决

http://www.cnblogs.com/kaima/articles/1386052.html
leo9239339 2010-08-27
  • 打赏
  • 举报
回复
能啊 这样做就可以了

var str="你好";
str = str.replace(/[^\u0000-\u00FF]/g, function($0) { return escape($0).replace(/(%u)(\w{4})/gi, "&#x$2;") });

然后就可以了
哎没办法 这分就当送给你们了
csucdl 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 leo9239339 的回复:]
我是想问用JavaScript去转换 不是在页面里面设置编码格式
[/Quote]

对不起, 你不能使用javascript来转换编码
leo9239339 2010-08-27
  • 打赏
  • 举报
回复
我是想问用JavaScript去转换 不是在页面里面设置编码格式
wcwtitxu 2010-08-27
  • 打赏
  • 举报
回复
有没有

<meta http-equiv="content-type" content="text/html;charset=gb2312">

都不影响 encodeURI 或 encodeURIComponent 的结果

javascript 没有直接能获取字符 gbk 编码结果的方法.




----------------------------------




如果在 IE 下,可以借助 VBScript 的 Asc 来获得.

如果允许延迟, 可以使用 form 以 GET 方式提交到 iframe 后,从 iframe 的地址中截取 queryString 部分.

也可以用 ajax 提交到服务端,在服务器返回相应编码结果 (不推荐).

这里有个例子,是利用 flash 来获得
http://www.ialvin.cn/util/py.htm

还有一个方案是,构造带多字节字符的 URI, 由浏览器获取资源时自动编码后,再截取
http://topic.csdn.net/u/20100319/15/c3c839f3-7f0b-424b-ae2e-8e1a084e2780.html

上面这些方法,都带有些缺点


-----------------------------------
目前较流行的是,加入一个映射表,通过查表来获得. 比较稳妥,但就是代码体积大了,并且多数只包含gb2312集,gbk中的一些生僻字可能...
http://download.csdn.net/source/1844165

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧