PHP - 德语字符的UTF8问题

时间:2009-11-18 16:41:30

标签: php encoding utf-8

我的智慧结束了这个,然后我记得堆栈溢出。

我有一个网站http://bridgeserver3.co.uk/disklavier/de/,该语言存储在一个简单的PHP文件中,看起来像..

$translations["welcome_text_3"]="Zum Lieferumfang eines jeden Disklaviers gehren bereits zahlreiche Lieder und das Angebot lsst sich jederzeit erweitern. Unsere neuen Modelle warten sowohl mit akustischen als auch mit digitalen Errungenschaften auf, darunter die Wiedergabe von Audio- und MIDI-CDs sowie die revolutionre ãPianoSmartªÓ-Funktion fr die Synchronisation Ihrer Klavieraufzeichnungen mit handelsblichen Audio-CDs. Und wenn Sie schon eine Weile davon trumen, eines Tages zumindest passabel Klavier spielen zu knnen, hilft Ihnen die neue ãSmartKeyªÓ-Technologie beim Einstudieren Ihrer ersten Stcke und versieht Ihr Spiel sogar mit professionellen Verzierungen.";

(字符在文件中完美显示,但不在SO上)。

此文本是从excel电子表格导出的,并且是手动创建的平面文件。

页面编码是UTF8,我添加了:

header("Content-type: text/html; charset=UTF-8");

到php文件,但当我回显字符串时,它会丢失德语字符。

任何人都可以提供任何提示吗?

詹姆斯

4 个答案:

答案 0 :(得分:3)

我发现了问题...

Excel使用Windows编码导出文本,因此即使在Mac上的TextMate中它看起来也是正确的。当我重新打开UTF8编码时,问题在翻译文件中可见。

要解决我在PC上使用EditPadPro转换为UTF8。

呼。

答案 1 :(得分:2)

也许您可以尝试在<head>代码中添加此内容?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

答案 2 :(得分:1)

  

页面编码是UTF8,我添加了:

可能不是。确保php文件实际上是用utf-8编码保存的。

答案 3 :(得分:1)

我使用Coda但我认为textmate必须提供一些选项,如Text-&gt; Encoding-&gt; Unicode UTF-8,激活它然后你的文件将被正确编码然后保存。 无论如何,如果你打算放一些表格并且你不确定人们是否使用正确的编码模式你会遇到同样的问题。

使用类似的东西:

<?php

$not_utf8 = "An invalid string"; //Put here the bad text for testing
$not_utf8 = mb_convert_encoding($not_utf8, 'UTF-8', mb_detect_encoding($not_utf8));

echo htmlspecialchars($not_utf8, ENT_QUOTES, 'UTF-8'); //The output should be ok, see the source code generated and search for the correct html entities for these special chars

?>

希望这对你有帮助!

路易斯。