проблема декодирования utf-8 в php - PullRequest
0 голосов
/ 21 августа 2009

Я получил файл .vcf с частями, закодированными как UTF-8:

CATEGORIES;CHARSET=UTF-8:Straße & –dienste

Теперь "–" должно быть "-", а "Straße" должно преобразовываться в "Straße".

Я пытался

  • utf8_decode()
  • iconv()
  • mb_convert_encoding()

И играли с несколькими вариантами кодирования вывода, такими как

  • header('content-type: text/html; charset=utf-8');
  • mb_internal_encoding('UTF-8');
  • mb_http_output( "UTF-8" );

Но я не получаю желаемых результатов - вместо этого: "StraÃ?e & â??dienste"

Кто-нибудь вытаскивает этот узел из моего мозга? Большое спасибо.

Ответы [ 4 ]

1 голос
/ 21 августа 2009

решена.

Мне пришлось преобразовать файл PHP обратно в ISO-8859-1 (вместо UTF-8).

думал, что это ничего не изменит, но это так!

0 голосов
/ 24 августа 2009

У меня нет ответа для вас, так как я не уверен, что полностью понимаю, что вы пытаетесь сделать (прочитайте файл .vcf на PHP?) ....

Но подсказка такова: «Straße» - это «Straße», закодированный в UTF-8, но затем интерпретируемый как Latin1 (или Windows-1252).

0 голосов
/ 21 августа 2009

забыл упомянуть: MySQL нет ...

обычный php; -)

echo "Straße & –dienste";

echo utf8_decode("Straße & –dienste");

должен как-то стать "Straße & -dienste" ... но не будет, не будет

0 голосов
/ 21 августа 2009

Возможно, вы захотите попробовать utf8_encode (). У меня была похожая проблема при получении информации в кодировке UTF-8 из MySQL и отображении ее на HTML-странице UTF-8.

...