Php iso-8895-1到xml可接受的UTF-8

Php iso-8895-1到xml可接受的UTF-8,php,xml,utf-8,Php,Xml,Utf 8,我正在将网页中的文本/html解析为xml提要,文本/html编码为iso-8895-1,而xml提要必须是UTF-8。我已经使用了html实体,但是我不得不手动替换大量的字符,这里是我到目前为止所做的(仍然没有解析所有的文本) 使用。它还允许您在UTF-8中使用本机字符-不需要HTML实体 $data = iconv("ISO-8859-1", "UTF-8", $text); 从UTF-8对另一个字符集进行编码时,请使用“忽略”或“音译”删除或音译不可翻译的字符 或者,@Gumbo显示的m

我正在将网页中的文本/html解析为xml提要,文本/html编码为iso-8895-1,而xml提要必须是UTF-8。我已经使用了html实体,但是我不得不手动替换大量的字符,这里是我到目前为止所做的(仍然没有解析所有的文本)

使用。它还允许您在UTF-8中使用本机字符-不需要HTML实体

$data = iconv("ISO-8859-1", "UTF-8", $text);
从UTF-8对另一个字符集进行编码时,请使用“忽略”或“音译”删除或音译不可翻译的字符

或者,@Gumbo显示的
mb.*
函数也可以工作

使用。它还允许您在UTF-8中使用本机字符-不需要HTML实体

$data = iconv("ISO-8859-1", "UTF-8", $text);
从UTF-8对另一个字符集进行编码时,请使用“忽略”或“音译”删除或音译不可翻译的字符

或者,@Gumbo显示的
mb.*
函数也可以工作

您还可以使用或:

两者都会将编码从ISO 8859-1转换为UTF-8。

您也可以使用或:


两者都会将编码从ISO 8859-1转换为UTF-8。

看起来您是通过将字符串粘合在一起来构建XML。不要那样做。使用XML库,您可以告诉它您的输出编码,它将满足您的任何编码需求。(
htmlentities
不会这样做,因为除了少数几个之外,它们都没有为任意XML定义)实际上,我正在使用$XML=newDOMDocument('1.0','UTF-8')构建我的XML;以及在附加子节点和文本节点的数组中迭代。这只是为其中一个节点准备文本,看起来就像是通过将字符串粘合在一起来构建XML。不要那样做。使用XML库,您可以告诉它您的输出编码,它将满足您的任何编码需求。(
htmlentities
不会这样做,因为除了少数几个之外,它们都没有为任意XML定义)实际上,我正在使用$XML=newDOMDocument('1.0','UTF-8')构建我的XML;以及在附加子节点和文本节点的数组中迭代。这只是为其中一个节点准备文本。+1,可能添加
//translatit
,以防止ISO-8859-1中无法表示的字符断开字符串。嗯,ISO 8859-1的字符集是Unicode字符集的子集。因此,没有必要忽略或音译任何内容,因为它们没有区别:字符集(ISO 8859-1)\charset(Unicode)=∅.不要忘了修改任何给出字符集的
META
标记,因为它以后可能会不准确。@Ignacio Vazquez Abrams:XML提要可能没有
META
元素,至少我所知道的没有。+1,可能添加
//translatit
,以防止ISO-8859-1中无法表示的字符断开字符串。嗯,ISO 8859-1的字符集是Unicode字符集的子集。因此,没有必要忽略或音译任何内容,因为它们没有区别:字符集(ISO 8859-1)\charset(Unicode)=∅.不要忘了修改任何给出字符集的
META
标记,因为它以后可能会不准确。@Ignacio Vazquez Abrams:XML提要可能没有
META
元素,至少我所知道的没有。
$desc = utf8_encode($desc);
// OR
$desc = mb_convert_encoding($dest, 'UTF-8', 'ISO-8859-1');