这是奇怪的外来字符集还是编码问题?

时间:2019-09-09 14:39:48

标签: javascript html encoding utf-8 character

我正在尝试修复奇怪的角色错误,但不知道发生了什么。我有一篇外国人写的文章,当我收到它时,字体渲染正确存在奇怪的问题。我已经将其范围缩小为使用字符集的问题,但是我不知道如何将其转换为正确的美国版本。帮助吗?

这是一个例子:

因为其他原因

这显然是短语“商业网站”,但是当您输入cmd + f或cntrl + f并键入该短语时,它不会将其识别为该短语。有人遇到过这个问题吗?我发现的唯一解决方法是重新键入该短语,但这对于1500字的文章来说是不可行的。我尝试过将其复制并粘贴到文本编辑器中以可能对其进行重新编码,但这没有用。

2 个答案:

答案 0 :(得分:2)

我从此页面复制了文本,并将其放入此JavaScript中:

'buѕіnеѕѕ wеbѕіtе'.split('').map(c => c.charCodeAt(0).toString(16))

输出为:

["62", "75", "455", "456", "6e", "435", "455", "455", "20", "77", "435", "62", "455", "456", "74", "435"]

其中一些在ASCII范围内,但是很多与西里尔字母相似。

答案 1 :(得分:1)

使用其他答案的输入,我可以使用以下javascript代码来筛选出令人反感的字符:

// get everything in the div
let article = document.getElementById('post')
let text = article.innerText

// get chars with values outside the ASCII range
let characters = text.split('').map(c => c.charCodeAt(0) > 128 ? c : null)

// filter out null values
let filtered = characters.filter(c => c)

// get the unique values
filtered = Array.from(new Set(filtered))

这使我了解了使用“查找并替换”将其转换的12个字符。毕竟还算不错。