通过JavaScript从其他站点得到一个字符串是euc-kr编码的韩文,显示的时候是乱码(但是在韩国显示正常),想把它转化为UTF-8,通过JavaScript能够实现吗

解决方案 »

  1.   

    从其他站点得到有权限么? ---------------你是什么环境   本地执行?  HTA?
    能使用 JScript 特性么, 比如 ActiveXObject 或者 VBScript 么-------------------单纯 JavaScript 可不好办
      

  2.   

    复制下面代码,保存为ASCII格式的HTML文件
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>测试</title>
    <script language="javascript" type="text/javascript">
        window.onload = function() {
            var text = "中文";
            var utf8 = encodeURIComponent(text);
            document.getElementById("output").innerText = utf8;
        }
    </script>
    </head>
    <body>
        <div id="output"></div>
    </body>
    </html>
    记得文件的编码一定要是ASCII的。运行代码后,你就可以看到%E4%B8%AD%E6%96%87这是6个字节,实际上就是中文的UTF8编码了,而如果你用UltraEdit以二进制查看文件的时候,其实 中文 这两个字是D6 D0 CE C4 也就是4个字节。所以encodeURIComponent可以完成ASCII到UTF8的转换。韩文的话,就不知道了,你也可以试试。
      

  3.   

    环境是这样的:
    我们需要调用获取第三方(韩国)的信息,第三方给了我们一段JavaScript代码,
    我们调用其中一个函数获得结果(里面有韩文),里面用到了ActiveX。
    我们在把返回结果显示在页面。在韩国显示是正常的,但是中国是乱码,而且在IE 查看—>编码设置为韩文也不行,试了encodeURIComponent escape charCodeAt等函数都不行。我们可以用ActiveXObject的,这个有办法能转化吗。
      

  4.   

    意思是说,执行结果你得到的编码是euc-kr
    你可以这样做,把这些韩文内容原封不动的传到服务器,在服务器上进行编码转换。因为客户端JS不好完成这样的工作,只好交给服务端来完成了。这跟GB2312到UTF8编码转换的方法是一样的
      

  5.   

    我把返回串传给服务器了,并转化为utf-8了
    String tmp = new String(errormsg.getBytes("utf-8"),charencoding);
    但是还是乱码。另外,修改html的下面的charset值,在服务端收到的字符串是不一样的
    这个charset到底有什么用呢
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">