JavaScript utf-8 编码问题

JavaScript utf-8 encoding issue

本文关键字:问题 编码 utf-8 JavaScript      更新时间:2023-09-26

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

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

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

这是我使用的代码片段

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

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

甚至jQuery代码片段也很好

问题可能是您的服务器没有将数据作为 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;
}

通过在 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 提供网页时,系统会忽略 HTML 元Content-Type标记。仅当页面保存到客户端磁盘,然后通过file:// URL 从中重新打开时,才会使用它。

另请参阅:

  • Unicode - 如何正确获取字符?