1

我想填充从服务器到 UI 页面以 json 形式出现的 utf-8 数据。

我可以看到“jsonStr”有 utf-8 数据。我已经在 Eclipse 的调试模式下进行了验证。

但是当我看到 json 变量值时,它显示为“??????”。

这是我使用的代码片段

 <script  language="JavaScript" charset="utf-8">
var json = <%=jsonStr%>
</script> 

有人可以在这个问题上帮助我吗?

甚至 jQuery 代码片段也可以

4

2 回答 2

2

问题可能是您的服务器没有将数据作为 utf8 发送出去。我不确定您使用的是哪种服务器端语言,但这是我在 PHP 中所做的:

/**
 * encodes a string / array values to utf8
 * @param (mixed) $mixed
 */
static function utf8Encode( $mixed ) {
    if( is_array( $mixed ) ) {
        foreach( $mixed as $key => $value ) {
            $mixed[$key] = self::utf8Encode( $value );
        }
    } else {
        if( !mb_check_encoding( $mixed, 'UTF-8') ) {
            $mixed = utf8_encode( $mixed );
        }
    }

    return $mixed;
}
于 2012-05-23T13:44:46.253 回答
1

通过在 JSP 页面顶部添加以下行来告诉 JSP 使用 UTF-8 编写响应正文:

<%@page pageEncoding="UTF-8" %>

为避免对每个 JSP 页面重复此操作,您还可以web.xml按如下方式对其进行配置,以便它自动应用于每个 JSP:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

请注意,当通过 HTTP 提供页面时,将忽略Content-TypeHTML 元标记。它仅在页面保存到客户端磁盘然后通过URL 从它重新打开时使用。file://

也可以看看:

于 2012-05-23T13:49:18.350 回答