前天在 CSDN 有网友问到 ASP 中 UTF-8 转 GB2312 的问题
见:http://topic.csdn.net/u/20080729/18/b257b0ce-d947-495d-a722-00b8b6a577dc.html
使用的是网上流行的 UTF2GB(UTFStr) 函数。
代码甚是复杂,但其实目的是为了实现 JScript 里 decodeURIComponent 功能。
我很是郁闷,既然 JScript 有 decodeURIComponent,而且 ASP 又可以使用 JScript 为什么现成的内置函数不用呢?如:
可能有些朋友就特不喜欢 JScript, 那么利用一下 ADODB.Stream 转码也方便的多
^_^ 上面说了这么多,都跟主题没什么关系
在原来贴子中,提问的网友最后提到了一个很好的问题。
就是像:
"抚顺青松药业"
GBK 的 URI 编码是 "%B8%A7%CB%B3%C7%E0%CB%C9%D2%A9%D2%B5"
UTF-8 的 URI 编码是 "%E6%8A%9A%E9%A1%BA%E9%9D%92%E6%9D%BE%E8%8D%AF%E4%B8%9A"
在未知何种编码格式的情况下,如何能自动识别其编码,正确解出 "抚顺青松药业" (Google 就能做到)
这个问题之前自己也有被难住过,那时候是做页面统计时,为了分析用户从搜索引擎进入时,用户搜的是什么关键字,这就需要从来路页面的地址中分析出关键字,而 提交给 Google 的搜索关键字有时是 GBK 的 URI 编码,有时是 UTF-8 的 URI 编码。这就要求我们也必须能像 Google 一样能识别出 URI 串是用了什么编码。
在搜索了 UTF-8 的编码规则后,终于写出了下面的代码
偶尔也会有 GBK 编码串被误认为 UTF-8 的,不过,误认的问题并不好解决,Google 都也会出这样的问题。
把代码记下来,备以后用