在百度中输入“好”搜索,url变为http://www.baidu.com/s?bs=%BA%C3%C8%CB&f=8&rsv_bp=1&wd=%BA%C3&inputT=1017
其中wd表示当前输入的内容,即"好" == "%BA%C3"
utf8中的"好" == "%E5%A5%BD"
首先我想确认"%BA%C3"是否为GBK编码,如果是的话,请教js里如何把utf8转为GBK编码
我这边只支付纯静态页面,所以没法通过后端程序转,大家帮帮忙。
其中wd表示当前输入的内容,即"好" == "%BA%C3"
utf8中的"好" == "%E5%A5%BD"
首先我想确认"%BA%C3"是否为GBK编码,如果是的话,请教js里如何把utf8转为GBK编码
我这边只支付纯静态页面,所以没法通过后端程序转,大家帮帮忙。
但是要知道 编码规则,才能写。
我只找到 utf-8的编码规则:
例子: “你”字的UTF-8编码: E4 BD A0 11100100 10111101 10100000
“你”的Unicode编码: 4F 60 01001111 01100000
按照UTF-8的编码规则,分解如下:xxxx0100 xx111101 xx100000
把除了x之外的数字拼接在一起,就变成“你”的Unicode编码了。
注意UTF-8的最前面3个1,表示整个UTF-8串是由3个字节构成的。
经过UTF-8编码之后,再也不会出现敏感字符了,因为最高位始终为1。
gb2312 需要字库,通常都是服务器端处理的。GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄罗斯语西里尔字母在内的682个全形字符。 GB2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖99.75%的使用频率。GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。 01-09区为特殊符号。 16-55区为一级汉字,按拼音排序。 56-87区为二级汉字,按部首/笔画排序。 10-15区及88-94区则未有编码。 举例来说,“啊”字是GB2312之中的第一个汉字,它的区位码就是1601。字节结构在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII。每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”,第二个字节称为“低位字节”。 “高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上0xA0)。例如“啊”字在大多数程序中,会以0xB0A1储存。(与区位码对比:0xB0=0xA0+16,0xA1=0xA0+1)。 所以GB2312编码中汉字区码的十进制是从176到247,位码是从161到255.之所以存储了6763小于82*94=6768,是因为在区码为215,位码为250-254之间共五个编码没有汉字编码,所以6768-5=6763个。
一般unicode的编码和解码,js有内置的函数,可以使用
decodeURIComponent("****")
来解码
后台可以用:URLEncoder.encode(变量,"UTF-8")
你用decodeURL解码成汉字就好办了。
http://zhidao.baidu.com/question/55467860.html
放错了
http://www.cnblogs.com/cy163/archive/2007/05/31/766886.html