У меня есть проблема с моим кодировкой ...кодирование PHP Postgres json_encode
Все UTF-8 настроен, а именно моя база данных (Postgres) и мои файлы PHP.
, когда я выполнить этот сценарий:
$eleves = $serviceManager->getAll('Eleve');
echo "<pre>";
print_r($eleves);
echo "</pre>";
я получаю это:
[0] => Model_Eleve Object
(
[idEleve:Model_Eleve:private] => 28206
[numeroscolaire:Model_Eleve:private] => ABE290999JOËL
[nom:Model_Eleve:private] => Abedinpour
[prenom:Model_Eleve:private] => Joël
[dateNaissance:Model_Eleve:private] => 1999-09-29
[sexe:Model_Eleve:private] => masculin
[statusCourant:Model_Eleve:private] =>
[statusSuivant:Model_Eleve:private] =>
[adresses:Model_Eleve:private] => Array
(
[0] => Model_Adresse Object
(
[idAdresse:Model_Adresse:private] => 6176
[rue:Model_Adresse:private] => La Delèze
[numero:Model_Adresse:private] => 37
[codePostal:Model_Adresse:private] => 1164
[localite:Model_Adresse:private] => Buchillon
[emplacement:Model_Adresse:private] =>
)
)
Здесь все в порядке. Но если я хочу JSON:
$eleves = $serviceManager->getAll('Eleve');
echo "<pre>";
echo json_encode($eleves, JSON_PRETTY_PRINT);
echo "</pre>";
Я получаю это:
{
"nom": "Abedinpour",
"prenom": "Jo\u00ebl",
"adresse": [
{
"rue": "La Del\u00e8ze",
"numero": "37",
"localite": "Buchillon"
}
],
"classe": [
"7VSG\/1"
]
},
Я понятия не имею, почему он работает с массивом и не работает с json_encode ... Я пытался превратить все в utf8 (с htmlentities), но он говорит мне, что он не может преобразовать «ASCII»
Когда я пытаюсь показать кодировку моих файлов с этой командой в терминале:
file -I myfile.php
возвращает это:
myfile.php: text/x-php; charset=us-ascii
, но я не могу преобразовать его в utf8:
iconv -f us-ascii -t utf-8 myfile.php > myfile2.php
file -I myfile2.php
myfile2.php: text/x-php; charset=us-ascii
заранее спасибо за вашу помощь
Да, он отлично работает! но возможно ли иметь JSON_UNESCAPED_UNICODE и JSON_PRETTY_PRINT? Я пробовал это: $ eleves2 = json_encode ($ eleves, JSON_UNESCAPED_UNICODE); $ eleves3 = json_encode ($ eleves2, JSON_PRETTY_PRINT); , но это не сработает ... – theplayer777
Параметр представляет собой бит-флаг, чтобы передать два * OR * them: 'JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT'. – deceze
Oups Я только что нашел: json_encode ($ eleves, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); Спасибо за вашу помощь! – theplayer777