Как использовать Umlauts из PHP в Javascript - PullRequest
1 голос
/ 28 сентября 2011

У меня есть база данных MySQL, которая содержит немецкие умлауты (ä, ü, ö и т. Д.).Все поля базы данных закодированы в latin1_german1_c (если это имеет значение).

Из этой базы данных я создаю объект json, который я использую с javascript.Однако каждое значение, которое содержит один из этих Umlauts, устанавливается равным нулю с самого начала через:

var json = <?php echo json_encode($results);?>;

затем:

>>> console.log(json[0].name)
null

Нужно ли как-то по-другому кодировать мой документ?Мне нужно пройти через массив $results и как-то кодировать каждое значение?Или что-то совершенно другое?

1 Ответ

3 голосов
/ 28 сентября 2011

json_encode Документы ожидает, что строки будут utf-8 кодированы, а не latin-1 - поэтому значения сбрасываются на NULL(не установлено).

Вам необходимо перекодировать строки с latin-1 до utf-8 , прежде чем использовать их с json_encode.Ищите iconv Документы или mb_string библиотеки, оба могут сделать это:

$utf8 = iconv($in = 'LATIN-1', $out = 'UTF-8', $latin1);
...