4

我曾经通过转换编码,iconv但今天我被一些新的东西停下来,
我做了一个测试用例来明确我的问题:

目标是转换الحلقة الثالثة为 utf8 版本:الحلقة الثالثة

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title> this text is from arabic language   </title>
</head>
<body>
<p><span> &#1575;&#1604;&#1581;&#1604;&#1602;&#1577; &#1575;&#1604;&#1579;&#1575;&#1604;&#1579;&#1577;</span></p>
</body>
</html>

尝试使用编码,ASCII , LATIN1 , windows-1252但没有运气我如何知道这种类型的编码是什么以便转换它?谷歌翻译 + stackoverflow 编辑器都能够检测到它并隐藏它吗?

另一个例子:如果我检查了这个网站http://kanjidict.stc.cx/recode.php能够正确转换编码Assume HTML (default: handle as plain text)

我错过了什么,这三个网站是为了正确转换它????

4

4 回答 4

6

好 ,

经过一天的工作,我找到了丢失的命令,它是我安装的一个包,名为ascii2uni

只需:sudo apt-get install ascii2uni

经过一些测试后,我能够使用此命令将一个文件转换为 unicode

ascii2uni -a D source.html > target.html

我只能使用命令行来转换它

干杯

于 2011-01-11T11:48:04.587 回答
2

这个想法是字符串替换。中编码Python3

仅解析十进制:

>>> import re
>>> s = r'&#65;&#223;&#254;'
>>> r = re.compile(r'&#(\d+);')
>>> r.sub(lambda m:chr(int(m.group(1))), s)
'Aßþ'

解析十六进制和十进制:

>>> import re
>>> s = r'&#x41;&#223;&#xFE;'
>>> r = re.compile(r'&#(x?)(\w+);')
>>> r.sub(lambda m:chr(int(m.group(2), 10 if not m.group(1) else 16)), s)
'Aßþ'
于 2011-11-05T15:20:00.820 回答
1

这些数字称为字母代码。有一些与 url 和 html 处理相关的特殊函数可以处理它们 - 取决于您使用的语言。


在 PHP 中,有http://www.php.net/manual/en/function.htmlspecialchars-decode.php 在其他语言中应该也有类似的功能

于 2011-01-10T12:25:58.727 回答
1
recode html..utf8

这也应该有效,但请确保您阅读了重新编码的使用手册,如果没有另行说明,它会重新编码文件。

于 2015-09-19T22:49:43.157 回答