如何在XML读取和PHP写入到mysql时转换德语字符?
早上好 我正在将XML文件中的数据输入我的数据库,但有任何带有德语单词的isse(错误地在XML中) 例如,单词für在我的XML中显示为für,因此在我的数据库中显示相同 我知道我可以对这个确切的短语进行简单的搜索/替换,但我想知道是否有更聪明的方法,因为我无法预测是否有一天其他德语单词会出现在XML中 添加更多细节 XML来源说:如何在XML读取和PHP写入到mysql时转换德语字符?,php,mysql,character-encoding,Php,Mysql,Character Encoding,早上好 我正在将XML文件中的数据输入我的数据库,但有任何带有德语单词的isse(错误地在XML中) 例如,单词für在我的XML中显示为für,因此在我的数据库中显示相同 我知道我可以对这个确切的短语进行简单的搜索/替换,但我想知道是否有更聪明的方法,因为我无法预测是否有一天其他德语单词会出现在XML中 添加更多细节 XML来源说: <?xml version="1.0" encoding="UTF-8" ?> 在我的PHP中,我有 $domString= utf8_编码
<?xml version="1.0" encoding="UTF-8" ?>
在我的PHP中,我有
$domString=
utf8_编码($dom->saveXML($element))
如果我在开始阅读XML文件之前查看它,它已经-
<title> - <![CDATA[ CoPilot Live v8 Europa für Android 8.0.0.644 ]]> </title>
-
谢谢
格雷格在任何地方都使用相同的编码,不会出现这样的问题。如果你必须选择一种编码:使用UTF-8
如果无法更改它(为什么…),则必须使用以获得正确的值。例如,当UTF-8数据被取消编码为ISO-8859-1时,通常会发生这种情况。在UTF-8中,德语umlautü由两个字节表示,在ISO-8859-1中,它是一个字节。这两个字节逐个解码,得到一个Ã和一个¼。你的任务是:
- 读取XML的字节
- 使用UTF-8解码它们
同时,我使用了一个用于猜测字符编码的库,它似乎工作得很好。也许您可以试试。不要忘记,如果您使用的是DOMDocument,那么无论脚本采用何种编码,它都会在内部将所有内容转换为UTF8 另外,如果您使用的是htmlentities,除非您明确告诉它,否则默认情况下它将使用ISO-8859-1编码。我花了一段时间才弄明白
有用的评论,也是从德语的角度来看。对于某些事情,utf8\u解码是可行的。
您可能还想看看他的函数:XML文件的编码是什么?您是自己生成的吗?我想您使用了错误的编码来读取xml,听起来源编码是UTF-8,您正在阅读iso-8859-1或类似的东西。我认为两者都是UTF-8,我已经在我最初的问题中添加了一些细节。这部分是正确的,但不是发生这种情况的原因。如果无法更改编码,则必须深入挖掘一点:)我相信我在任何地方都在使用UTF-8,我已经在我的问题中添加了更多细节。。。