我正在使用jQuery从服务器检索一个文本文件并加载到代码镜像编辑器中。(这是Chrome版)
当我有一个具有以下测试字符串的测试文件时:
吕伊奥
它显示为:
s��Ii�gI�s
我用jQuery.get()调用加载数据。使用Chrome的脚本调试器,我可以看到jQuery正在以某种方式转换数据,基本上将其转换为ASCII (很差)。
我已经确认使用直接下载正确的数据是加载的。使用Fiddler,我确认内容类型是“text/平原;charset=UTF-8”。最后,我可以从菜单中看到整个页面都有编码UTF-8.但我不明白为什么jQuery要转换数据。
下面是加载数据的jQuery代码。
jQuery.get(path+file,null,function(data)
{
var initialContent = data;
if(!initialContent)
{
initialContent = "\n";
}
document.getElementById("fileContent").value = initialContent;
config.content = data,
editor = new CodeMirror(document.getElementById("codeMirrorDiv"), config);
},'text');
发布于 2011-03-12 01:21:16
我已经使用jQuery好几年了,从来没有见过像您描述的那样“转换”数据。我甚至不确定这是可能的。
确保显示数据的页面在<head>
中有此内容
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
另外,确保在编辑文本文件时,您实际上是在UTF-8中编辑它。
发布于 2014-03-05 10:59:08
通常情况下,这是因为数据库中的数据错误。
在连接到数据库后,尝试添加以下命令:
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
如果这没有帮助,那么尝试将此头添加到php文件中:
header('Content-Type: text/html; charset=utf-8');
很高兴知道任何文件(php,html.)必须以utf-8编码。最简单的方法是:
使用记事本打开
发布于 2014-11-07 09:00:10
如果设置了编码和标头,而仍有数据不正确,那么服务器端可能会出现问题(PHP、JAVA、.)。检查服务器端的所有字符串操作函数.
对于PHP:
$WRONG_string = substr($string, 0, 10);
$CORRECT_string = mb_substr($string,0,10,'utf-8');
如果您使用其他服务器端语言作为PHP,那么您应该检查函数手册中的字符串编码。
https://stackoverflow.com/questions/5280113
复制相似问题