我有一个网页正在从2个不同的源中提取数据,一个是在数据库中用UTF8编码的(源A),另一个是未编码的(源B)。两种来源都包含多种语言,因此都包含一些外来字母。
我在页面顶部有UTF8解码;
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我发现这意味着我需要对从源B提取的数据进行编码,以使其正确显示在页面上。直到我注意到大写的Ö显示为??之前,这一切似乎都工作正常。我现在进行了一些测试,发现大多数(如果不是全部)大写变音符号都显示出来?而不是正确的字符。小写字母(ö,ô等)似乎都可以正常工作。我已经尝试编辑源代码,以及将正确的UTF8编码字符写入页面,并将其范围缩小到编码不正确,而不是在实际页面上解码。
我正在使用的javascript UTF8编码功能如下;
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
我对Javascript不太了解,所以我很to愧地说很多这样的事情令我头疼。谁能帮助我更新编码功能,以便它也可以正确编码大写变音字母,还是不那么简单?