js中有没有把十六进制数转换成Unicode字符的函数

来源:百度知道 编辑:UC知道 时间:2024/06/24 06:33:06
如题,想写一个parseUni("%C4%E3%BA%C3");返回"你好"
\x是转义字符没法替换到字符串里面去哇。。
找到想要的答案:
附上源码:
<title>用JavaScript实现asp中的UrlEncode和UrlDecode功能</title>
<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script language="javascript">
function UrlDecode(str){
var ret="";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
if(chr == "+"){
ret+=" ";
}else if(chr=="%"){
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));
i+=5;
}else{
ret+=asc2str(parseInt("0x"+asc));

根本不用你编写十六进制转换unicode
document.writeln(escape("你好"))
再给你几个函数encodeURI,encodeURIComponent unescape 方法
这些方法足够你完成中文参数传递

dim mem() as Byte
mem ="Unicode"
mem = StrConv(mem, vbWide)
Dim tmp As Long
For i = 0 To Len(mem) - 1
tmp = AscW(Mid(mem, i + 1, 1))
L_Data( i * 2) = (tmp + 65536) \ 256
L_Data( i * 2 + 1) = (tmp + 65536) Mod 256
Else
L_Data(i * 2) = tmp \ 256
L_Data( i * 2 + 1) = tmp Mod 256
End If
strHex=hex(L_Data(i * 2)) & hex(L_Data(i * 2+1))
Next i

太深奥了

这个是URL编码
使用JS不用你转,因为JS中的encodeURI就是使用的utf-8编码
只要你的程序代码,如:PHP、ASP要把JS传来的转成GB2312

loveandkissyou这位兄弟说的很对,你去查看一下百度搜索提交之后的URL