2009-11-18 5 views
2

Я нахожусь на своем конце с этим, тогда я помню переполнение стека.PHP - проблема UTF8 с немецкими символами

У меня есть сайт, 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, но когда я эхо из строки она теряет немецкие символы.

Может ли кто-нибудь предложить какие-либо советы?

Джеймс

+0

Что вы понимаете, потеряв символы? – Gumbo

+0

Уходят ли комментарии, если вы в качестве теста вставляете переведенный текст непосредственно в страницу/шаблон? –

ответ

3

Я нашел проблему ...

Excel экспортируется текст с кодировкой Windows, так это выглядело правильно, даже в TextMate на моем Mac. Когда я снова открываю кодировку UTF8, проблема была видна в файле переводов.

Чтобы решить, я использовал EditPadPro на ПК для преобразования в UTF8.

Фуэ.

1

Может быть, вы можете попробовать добавить это внутри тега <head>?

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

+1

Объявление в заголовке HTTP имеет более высокий приоритет. – Gumbo

1

Кодирование страницы UTF8, и я добавил:

Вероятно, нет. Убедитесь, что файл php фактически сохранен с помощью кодировки utf-8.

0

Я использую Coda, но я думаю, что textmate должен предложить некоторый вариант, например Text-> Encoding-> 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 

?> 

Надеется, что это помогут вам!

Luis.

Смежные вопросы