JavaScript 里有 escape, encodeURI 和 encodeURIComponent 函数
都可以对字串进行编码,它们之间的异同,在此就不说了.
本文是为了解决在 JavaScript 对文本进行本地编码格式的 URI 编码问题。
JS 本身使用的字符编码是 Unicode
escape 函数也是 Unicode 的
encodeURI 和 encodeURIComponent 则都是 UTF-8 的。
但我们有时则需要按本地编码格式对字符串进行 URI 编码。如:GB2312 的
如果是在 IE 可以借助 VBScript 的 Asc 函数。但是在非 IE 浏览器就不好办了。到底要怎么样才能够进行 GBK 的 URLEncode 呢?
之前看到一个方法就是在 JS 中加入一个 Unicode->GB2312 的映射表,也是一个办法,但是觉得加了几十K的东东,字符还不知道是不是很完整。
今天突然想到了用 Flash, 在 Flash 可以在 ActionScript 中通过 System.useCodepage = true 设置使用本地编码。然后利用 ExternalInterface 给 JS 曝个接口。JavaScript 调用 Flash 的函数来实现。
思路觉得还不错,于是就测试了一下。
在 Flash8 中新建个空白文档。在主场景里加了下面动作代码:
然后建个 htm 测试下
测试页面: http://www.ialvin.cn/util/py.htm
果然成功了!
觉得自己这个主意还是不错的。嘿嘿!
文章来源:
http://www.ialvin.cn/blog/article.asp?id=152