如何在javascript中编码UTF-8字符?

如何在javascript中编码UTF-8字符?,javascript,utf-8,Javascript,Utf 8,我在显示mysql数据库中的值时遇到问题。因此,值在mysql数据库中保存为UTF-8(正确),我将JSON格式的数据检索到javascript(正确),然后在javascript中打印结果时,我没有看到正确的符号,因为我使用的是克罗地亚字母表 我已将此放在标题部分: 在脚本部分: <script type="text/javascript" charset="utf-8"> 接下来我能做什么?必须在真正的HTTP响应内容类型头上设置字符编码,而不仅仅是在元标记上。当HTTP

我在显示mysql数据库中的值时遇到问题。因此,值在mysql数据库中保存为UTF-8(正确),我将JSON格式的数据检索到javascript(正确),然后在javascript中打印结果时,我没有看到正确的符号,因为我使用的是克罗地亚字母表

我已将此放在标题部分:

在脚本部分:

<script type="text/javascript" charset="utf-8">


接下来我能做什么?

必须在真正的HTTP响应
内容类型
头上设置字符编码,而不仅仅是在元标记上。当HTTP请求检索HTML输出时,meta标记将被忽略。在webbrowser的开发者工具集中,您可以通过在Chrome/IE9/Firebug中按F12键获得,您必须能够浏览HTTP响应头,如下所示:

根据注释,您显然正在使用PHP生成HTTP响应的HTML输出。然后,您应该使用它的函数来设置正确的响应头。在响应中写入任何字符之前,在PHP脚本中添加以下行

header("Content-Type: text/html;charset=UTF-8");
另见:

您使用的服务器端视图技术是什么?它需要设置为HTTP响应
内容类型
头的
charset
属性。meta标记在HTTP响应上被忽略,例如,仅当您让您的webbrowser将HTML输出保存到磁盘,然后通过
文件://
URI而不是
HTTP://
URI从磁盘打开它时,才会使用meta标记。您指的是我使用的服务器端视图技术是什么?我得到的是JSON格式的数据,它有utf-8符号可见。简言之,你用什么来生成HTML?PHP、ASP、JSP、JSF、Python、RoR等等。。?或者它是一个静态HTML文件,并且您使用的HTTP服务器没有对Apache HTTPD之类的视图技术的默认内置支持吗?现在您让我有点困惑了。页面是用静态html编写的,但我使用javascript,因为我有一个谷歌地图。因此,我从服务器中提取数据,以便在谷歌地图中填充数据。我刚刚尝试用克罗地亚字母从javascript向console.log()中写入一些东西,它工作正常,所以从服务器检索数据时可能会出现问题。现在我看到JSON没有给我正确的值。这就是php的问题那么,你用php作为视图技术?然后提及(并标记)这一点。我已经发布了一个答案,我把它放在:
标题(“内容类型:application/json;charset=UTF-8”)我仍然有同样的问题,那么你在检索和打印它的方式上也有问题。请参阅PHP UTF-8备忘表。确保使用UTF-8从MySQL检索数据,并确保PHP使用UTF-8打印数据。如果您使用的是老式的
mysql.*
函数而不是PDO,那么您还需要事先执行
SET NAMES'utf8'
。如果您完全肯定从数据库到模型、控制器和视图的所有层都在使用UTF-8,然后,它显然没有正确地存储为UTF-8在数据库中的第一位。请注意,这个问题绝对不是JavaScript中的问题,因为它本身就已经支持Unicode BMP了。更多地关注MySQL/PHP配置和HTTP响应处理。