|
Perl JSON и UTF-8 - не могу правильно раскодировать данные
|
|||
---|---|---|---|
#18+
Есть hash с кириллицей, хранится в $data. Сохраняю его в файл таким образом: Код: php 1. 2. 3. 4. 5. 6. 7.
Сохраняется нормально, в файле корректное содержимое в UTF-8. Затем мне эти данные нужно считать обратно. Делаю так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Все почти нормально, но на строке print выдает предупреждение "Wide character". Если перед $json-decode делаю $json->utf8, тогда вообще не работает (JSON вылетает с ошибкой Wide character). use feature qw(unicode_strings) не помогает. Помогает сделать $buff = Encode::encode_utf8($buff) перед декодированием. Но мне кажется, что тут что-то не так — я ведь данные уже считал в UTF-8 и если их вывести на юникодную консоль, то выводится правильно и без предупреждения "Wide character". Мне кажется, что я JSON как-то неправильно использую. Или так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2018, 12:41 |
|
Perl JSON и UTF-8 - не могу правильно раскодировать данные
|
|||
---|---|---|---|
#18+
Предупреждение "Wide character" в print говорит о том, что перл не знает кодировку STDOUT. Нужно явно сказать об этом либо при запуске скрипта (man perlrun): Код: powershell 1.
либо в коде: Код: php 1.
JSON скорее всего вообще ни при чём. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2018, 04:49 |
|
|
start [/forum/topic.php?fid=23&msg=39614544&tid=1460343]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 136ms |
0 / 0 |