使用jQuery.get检索utf-8数据

我正在检索使用jQuery从服务器检索文本文件并加载到代码镜像编辑器。 (这是在Chrome中) 当我有一个带有以下测试字符串的测试文件时: üöIiçgIös 它显示为: sIigIs 我使用jQuery.get()调用加载数据。使用Chrome的脚本调试器,我可以看到jQuery以某种方式转换数据,基本上将它(很差)转换为ASCII。 我已经确认使用直接下载正确的数据加载。使用Fiddler,我确认内容类型是“text / plain; 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');
    
已邀请:
我已经使用了jQuery好几年了,并且从未见过如你所描述的那样“转换”数据。我不确定这是否可能。 确保显示数据的页面在
<head>
中有:
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
此外,请确保在编辑文本文件时,实际上是在UTF-8中编辑它。     
通常是因为数据库中的数据错误。 尝试在连接到数据库后添加这些命令:
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编码。最简单的方法是: 用记事本打开文件 文件 - >另存为 在保存之前选择底部下拉列表中的编码 完成!     
如果设置了编码和标头并且数据仍然不正确,则问题可能出在服务器端(PHP,JAVA,...)。检查服务器端的所有字符串操作函数。 对于PHP:
$WRONG_string = substr($string, 0, 10);
$CORRECT_string = mb_substr($string,0,10,'utf-8');
如果您使用其他服务器端语言作为PHP,那么您应该检查字符串编码的功能手册。     

要回复问题请先登录注册