jQuery XML转换的字符集问题

时间:2009-11-17 19:17:58

标签: jquery google-translate

Iam使用手动语言翻译的混合方法,并使用jquery-translate libray进行谷歌翻译。我已经让谷歌方法正常工作,但谷歌缺少我的雇主的客户要求的一些语言......

所以我使用jquery来读取具有英语+法语加拿大语言的xml文件,对于示例页面,我能够读取xml,并使用nodeContainsText替换页面上的文本,但是当我这样做时。文本的重音通过谷歌翻译完全显示,即法语。

所以我的问题是如何将xml数据作为正确的字符集/内容类型,以便正确显示。

$(document).ready(function()
{
  $.ajax({
    type: "GET",
    url: "xmldata.xml",
    dataType: "xml",
    success: parseXml
  });
});
function parseXml(xml)
{

  //find every Tutorial and print the author
  $(xml).find("english").each(function()
  {
    $(this).find('phrase').each(function(){
        english[count] = $(this).text();
        console.log('Adding to english array..['+english[count]+']');
        count = count + 1;
    });
  });
  count = 1;
  $(xml).find("french_canadian").each(function()
  {
    $(this).find('phrase').each(function(){
        frca[count] = $(this).text();
        console.log('Adding to frca array..['+frca[count]+']');
        count = count + 1;
    });
  });

$('body').nodesContainingText().each(function(){

    // step 1 search through all text nodes

    var $el = $(this), text = $el.text() || $el.val();
    var nn = this.nodeName;


    // step 2 find position in english array for word
    for(var i=0;i<english.length;i++) {
        // step 3 replace with french canadian version from array
        if (english[i] == text) {
            // which node dot text = value
            console.log('Replacing...'+english[i]+' with '+frca[i]);
            $el.text(frca[i]);
        }
    }
});

}

正如您所看到的,我通过firebug使用console.log来帮助调试内容/字符集问题的来源......

我似乎无法掌握将从xml文件传入的数据转换为正确的htmlentities编码的语法。

我知道它应该是.html()但是当我添加它时,它只会导致错误。那么有人能给我一个线索吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我最终通过将xml文件的字符集直接更改为

来找到解决方案
<?xml version="1.0" encoding="ISO-8859-1"?>

这使得其他语言的所有口音都可以立即观看......

感谢。