这是关于https://stackoverflow.com/questions/1791082/utf-8-php-and-xml-mysql ,我仍然试图让我的头。
我有几个单独的问题,希望能帮助我理解如何解决我遇到的问题。
我正在尝试从数据库中读取值并将其输出到UTF-8格式的文件中。 但是我有编码问题,所以我想我会去掉所有的代码,然后开始:
$string = "Otivägen"; // then output to a file.
但在vim我甚至不能input该string,每当我粘贴它,我得到Otivägen
我试图创build一个空白的PHP文件只有该string,并上传,但是当我再次Otivägen文件,我得到Otivägen 。
我的问题是…
1) Why is `vim` displaying it like this? 2) If the file is downloaded would it display correctly if an application was expecting UTF-8? 3) How can I output this string into a file that will eventually be an XML file in UTF-8 encoding.
我现在对编码的理解是有限的,我正在试着理解它。
1)为什么
vim像这样显示它?
这看起来像vim显示UTF-8编码数据为ISO 8859-1。 复制和粘贴可能是有问题的(你不写什么系统),所以我build议直接input文本。
要正确编辑vim中的文件,首先将vim设置为使用UTF-8:
:set encoding=utf-8
然后input文本,确保正确显示,并保存。 这会给你一个用UTF-8编码的文件。
2)如果文件被下载,如果应用程序期待UTF-8,它会正确显示?
取决于编码。 如果你像上面那样保存,那么是的。
3)我怎样才能输出这个string到一个文件,最终将是一个UTF-8编码的XML文件。
这显然是非常困难的。 我不熟悉PHP,但根据维基百科:
PHP目前不支持Unicode或多字节string; Unicode支持将包含在PHP 6 […]
所以你可能不得不谷歌的解决方法。 PHP和UTF-8也有一些UTF-8帮助程序库。 否则,select一种不同的语言可能会更好,例如具有固定Unicode支持的Java。
UTF8很有趣。 一旦工作。 : – /如果链条中的任何东西都在等待其他东西而不检查,那么它们都是梨形的。
:set encoding进行validation 我只是试了一下,这使一切工作。
关键是, 一切都需要在UTF8模式。