Javascript将文本从希腊语转换为UTF-8
Javascript converting text from greek to UTF-8
我正试图帮助我的老师将一本希腊教科书转换成在线应用程序。其中一部分包括获取Shapefile(在地图上绘制多边形,以及多边形的描述)。把这张地图上的所有东西都映射出来。我不能直接访问具有我需要转换的数据的shapefile文件的一部分,因为它是十六进制的。
无论如何,这是我打印到控制台的代码。
console.log((arr[1][i]['PERIOD']);
"arr"是包含我想要从希腊语转换为UTF-8的所有属性的数据数组。我只打印"PERIOD",而不是与数组关联的其他12个属性。
当我运行我的页面时,控制台返回文本的几种变体(因为存在几个句号)。下面是它返回的文本示例。
ÎÏÏαÏκή, ÎλαÏική, ÎλληνιÏÏική
ΡÏμαÏκή
ÎθÏμανική
Î¥ÏÏεÏοβÏζανÏινή
信不信由你,但这不是希腊文。因此,我窥探了一下,找到了这个函数来转换为utf-8:
function encode_utf8( s ){
return unescape(encodeURI( s ));
}
当我将这个函数添加到我的console.log中时,我得到的是:
áÃÂüñÃÂúî
ÃÂøÃÂüñýùúî
ÃÂ¥ÃÂÃÂõÃÂÿòÃÂöñýÃÂùýî
ÃÂøÃÂüñýùúî
我不是100%肯定,但我认为我正在尝试转换的文本目前是ISO-8859-7。
任何帮助,这将是惊人的。
谢谢。
您可以很容易地构建一个从一个字符集到另一个字符集的字节映射(尽管这可能会很繁琐)
假设ISO 8859-7只有256
字节长,所以不太难,
function genCharMap() { // ISO 8859-7 to Unicode
var map = [], i, j, str;
map.length = 256;
map[0] = 0; // fill in 0
str = ''u2018'u2019'u00a3'u20ac'u20af'u00a6'u00a7'u00a8'u00a9'u037a'u00ab'u00ac'u00ad'u00ae'u2015'u00b0'u00b1'u00b2'u00b3'u0384'u0385'u0386'u00b7'u0388'u0389'u038a'u00bb'u038c'u00bd'u038e';
for (i = 0; i < str.length; ++i) // fill in 0xA1 to 0xBE
map[0xA1 + i] = str.charCodeAt(i);
for (i = 0; i < 256; ++i) // fill in blanks
if (i in map) j = map[i] - i;
else map[i] = j + i;
return map;
}
现在你可以把这个转换应用到你的字节
var byteArr = [0xC1, 0xE2, 0xE3, 0xE4], // Αβγδ
str_out = '',
i,
map = genCharMap();
for (i = 0; i < byteArr.length; ++i) {
str_out += String.fromCharCode(
map[byteArr[i]]
);
}
str_out; // "Αβγδ"
如果你要用"组合字符"为字符集重写这段代码,那么将我在genCharMap
中使用的str替换为数组数字可能更安全。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- JavaScript ascii 到 utf-8 的转换问题与负数
- 在 JavaScript 中将 UTF-8 字符串转换为 Windows-1250
- 将 iso-8859-1 转换为 utf-8 JavaScript
- Javascript表单缩短-UTF-8转换编码
- 在Node.js中从Windows-1251转换到UTF-8
- Javascript将数字转换为utf-8
- 如何在javascript中将utf-8字符串转换为unlencoded win1251
- 将字符串转换为UTF-16(以及更多格式化)
- Javascript将字符串从GBK转换为utf-8
- Node.js将字符串从ISO-8859-2转换为UTF-8
- 将UTF-8数据转换为适当的字符串格式
- 如何将此字符串转换为普通的utf-8字符串?
- 在Java中将ANSI转换为UTF-8
- 使用JavaScript (UTF-8)将隐式字符串转换为可读字符串
- Javascript将文本从希腊语转换为UTF-8
- 如何在JavaScript中将DOM节点文本值转换为UTF-8
- utf 8 - JavaScript 中的 UTF-16 到 UTF-8 转换
- 我们可以用javascript将ANSI编码的CSV文件转换为utf-8编码的文件
- 将ISO-8859-1转换为UTF-8