1

我想用 JavaScript 将字符串从“UTF-8”编码为“cp1252”。

我有一个作为 utf-8 发送的 HTML 文档,并且在该文档中有一个隐藏字段保留 JsonString,其中包含“UTF-8”字符,例如“二”。我的 Java Bean 在服务器端没有收到正确的值,它得到“?”。

    <h:inputHidden id="hiddenPropertiesValues" 
        value="#{Bean.newProperties}"/>

Java Bean 类sscce

    public void setNewProperties( String newProperties ) {
        this.newProperties = newProperties;
    }

我尝试先通过java代码将JsonString转码为“cp1252”。然后将转码后的 JsonString 输入到隐藏字段中。Bean 可以获得正确的字符。

所以我想我可以通过使用 JavaScript 将字符串从“UTF-8”编码为“cp1252”来解决这个问题。

Html 和 Java Bean 文件都使用“UTF-8”。

4

1 回答 1

2

首先,这是不可能的,因为 Unicode 包含字符比 ISO8859-1 多得多。

其次,您应该(几乎)永远不需要担心编码,因为浏览器会为您处理。在内部,无论文档编码是什么,JS 总是使用 UTF-16。当你使用document.writeDOM 操作时,当form需要某种编码时,浏览器会负责转换。

我认为你真正应该做的是改进你的服务器端实现并在那里切换到 UTF-8。

于 2012-12-25T09:45:18.263 回答