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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中有没有把十六进制数转换成Unicode字符的函数相关的知识,希望对你有一定的参考价值。

如题,想写一个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));
i+=2;

else
ret+= chr;


return ret;


bb=UrlDecode("%C4%E3%BA%C3")
document.write("编码前C4%E3%BA%C3<br>");
document.write("解码后:"+bb);
</script>

参考技术A 根本不用你编写十六进制转换unicode
document.writeln(escape("你好"))
再给你几个函数encodeURI,encodeURIComponent unescape 方法
这些方法足够你完成中文参数传递
参考技术B 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
参考技术C 这个是URL编码
使用JS不用你转,因为JS中的encodeURI就是使用的utf-8编码
只要你的程序代码,如:php、ASP要把JS传来的转成GB2312
参考技术D loveandkissyou这位兄弟说的很对,你去查看一下百度搜索提交之后的URL,也是将参数转换为了unicode

如果想将unicode编码还原,建议你试试unescape(string);
第5个回答  2008-10-09 有点闷了

在vbs中怎样把字符串转换成十六进制

参考技术A VB字符串可通过使用StrConv 函数,将字符串由 Unicode 转成系统的缺省码页后,再获取每个字节的十六进制字符后拼接起来。
StrConv 函数,返回按指定类型转换的 Variant (String)。

实现代码:

1
2
3
4
5
6
7
8
9
10
11
12

Private Sub Command1_Click()
Dim strSj As String
Dim strHexSj As String
Dim i As Long
Dim bytSj() As Byte
strSj = "123ABC十六进制"
bytSj = StrConv(strSj, vbFromUnicode)
For i = 0 To UBound(bytSj)
strHexSj = strHexSj & Right("0" & Hex(bytSj(i)), 2)
Next
Debug.Print strHexSj
End Sub

vbFromUnicode,将字符串由 Unicode 转成系统的缺省码页。
既可以转换单字节字符也可转换双字节字符。

以上是关于js中有没有把十六进制数转换成Unicode字符的函数的主要内容,如果未能解决你的问题,请参考以下文章

在页面js 中,怎么将中文字符串转换成2个字节长度16进制数;并在js 环境下解码16进

怎么把十六进制字符串转化成UNICODE字符

c语言怎么把UTF-8转换成Unicode

js怎样把10进制数转换成16进制数显示?

c语言怎么把UTF-8转换成Unicode

在vbs中怎样把字符串转换成十六进制