3

我有一个 UTF-8 编码的 xml 文件,它是从 Wordpress MySQL 数据库中导出的。

虽然文件保存为 UTF-8,并且编码为 UTF-8,但我得到的是乱码,而不是应该在其中的希伯来语文本,如下所示:

™×•×~ות</p>

如何找到原始编码或字符集并将文本转换为正确的希伯来语?

PHP 的 mb_detect_encoding($str); 返回 UTF-8

尝试了各种 php 编码函数,具有不同的设置和输入/输出字符集,但它们都只是打印不同的乱码块,例如:

呸呸呸呸

�� ×שמ×

...任何想法如何去做?

4

4 回答 4

3
function convert($str) {
    $hebrew = array("א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "כ", "ל", "מ", "נ", "ס", "ע", "פ", "צ", "ק", "ר", "ש", "ת", "ך", "ם", "ן", "ף", "ץ");
    $gibberish = array("à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ë", "ì", "î", "ð", "ñ", "ò", "ô", "ö", "÷", "ø", "ù", "ú", "ê", "í", "ï", "ó", "õ");
    return str_replace($gibberish, $hebrew, $str);
}

$hebrew_string = convert(utf8_encode($gibberish_string));
于 2014-07-25T09:20:13.657 回答
1

如果您可以访问数据库,则可以通过将其导出为 latin1 并导入为 UTF8 来轻松修复它。正如这里所建议的那样

于 2010-05-16T09:52:10.060 回答
0

这与这个问题非常相似。

据我所知,这是一个错位的 Unicode 字符串,其中每个 unicode 字符都被编码为两个 unicode 字符。

我想出的代码只是丢弃了空的高位字节并从中重建了原始字节数组。该代码只是一个示例,方法非常简单,但应该可以帮助您实现目标。

于 2010-05-15T18:46:21.270 回答
0

看看你的 php 文件,也许它不是 utf-8,这就是你的 xml 查询返回这个不需要的字符串的原因。

于 2010-05-16T08:00:09.820 回答