<script language=javascript>
var str="\u5929\u5916\u6C34\u706B"
document.writeln(str)
var result=""
for(var i=0;i<str.length;i++)
{
execScript("result=result+hex(asc('"+str.charAt(i,1)+"'))","VBScript")
}
document.write(result)
</script>
var str="\u5929\u5916\u6C34\u706B"
document.writeln(str)
var result=""
for(var i=0;i<str.length;i++)
{
execScript("result=result+hex(asc('"+str.charAt(i,1)+"'))","VBScript")
}
document.write(result)
</script>
这段代码好像不是将utf8转GB2312吧运行你的程序,得到结果:天外水火 CCECCDE2CBAEBBF0 天外水火 的UTF8码是:E5A4A9 E5A496 E6B0B4 E781AB
<script language=javascript>
var str="%E5%A4%A9%E5%A4%96%E6%B0%B4%E7%81%AB"
str=decodeURI(str)
document.writeln(str)
var result=""
for(var i=0;i<str.length;i++)
{
execScript("result=result+hex(asc('"+str.charAt(i,1)+"'))","VBScript")
}
document.write(result)
</script>
编辑框输入中文后,结果放到input.value里,然后让程序对input.value再处理?
就拿“天外水火 ”这4个字来说,输入后的十六进制是:
5929 5916 6C34 706B这个是什么编码?我需要将其转成标准的GB2312,放到*.js执行。function str_to_gb(str)
{
var result = '';
var i; for (i = 0; i < str.length; i++)
{
var c = str.charCodeAt(i);
var tmp = ''; if (c > 255)
{
//execScript("result=result+hex(asc('"+str.charAt(i,1)+"'))","VBScript")
怎么将1楼的这句转到这个函数里执行?
}
else
{
result += str.charAt(i);
}
}
return result;
}
<script language=vbscript>
function vb_str_to_gb(char)
vb_str_to_gb=hex(asc(char))
end function
</script>
<script language=javascript>
function str_to_gb(str)
{
str=unescape(str)
var result = '';
var i; for (i = 0; i < str.length; i++)
{
var c = str.charCodeAt(i);
var tmp = ''; if (c > 255)
{
result+=vb_str_to_gb(str.charAt(i));
}
else
{
result += str.charAt(i);
}
}
return result;
}
alert(str_to_gb("\u5929\u5916\u6C34\u706B"))
</script>
执行时,提示下面出错:<script language=vbscript>
function vb_str_to_gb(char)
vb_str_to_gb=hex(asc(char))
end function
</script>
<script language=javascript>
可不可以将:
result+=vb_str_to_gb(str.charAt(i));直接改成如下语句形式:result+=hex(asc(str.charAt(i))); 我这样改后,没有结果返回。
原来这样,对照表只要包括gb2312部分,一般不会太大吧?
能否帮忙给段代码,我试试效果如何