Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136

json_encode, cp1251 и php5.3

21.07.2023, 16:31. Показов 525. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Не знаете у этого динозавра, что за флаг в json_encode который в свежих PHP JSON_UNESCAPED_UNICODE Говорят, что-то другое, а что - не могу найти.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.07.2023, 16:31
Ответы с готовыми решениями:

Что сделать, чтобы при вводе команды php в терминале включался php5.6, вместо php5.5?
Добрый день! На маке стоит php5.6 и php5.5.29, при вводе команды php в терминале врубается php5.5.29. Что сделать, чтобы при вводе php в...

Модифицировать код с php5.5 на php5.6
Даный код работает на версии пхп5.5 полностью нормально, но на сервере стоит пхп5.6 и вместо русских букв отображаются знаки вопроса....

Ошибка /usr/lib/php5/sessionclean: «/usr/lib/php5/20131226/: cannot read file data: Is a directory»
Как исправить? С сервера приходят письма

5
Надуваю лягушек
Эксперт PHP
 Аватар для Царь Бабай
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
21.07.2023, 22:43
Без опции JSON_UNESCAPED_UNICODE, то русские символы будут преобразованы в экранированные последовательности символов (например, "\u041f\u0440\u0438\u0432\u0435\u044 2"). А с опцией JSON_UNESCAPED_UNICODE, русские символы будут сохранены в исходном виде (например, "Привет").
0
Невнимательный
 Аватар для ft4l
3112 / 1290 / 359
Регистрация: 08.02.2013
Сообщений: 7,566
Записей в блоге: 2
22.07.2023, 00:16
Цитата Сообщение от HotReboot Посмотреть сообщение
что за флаг в json_encode который в свежих PHP JSON_UNESCAPED_UNICODE Говорят, что-то другое, а что - не могу найти.
в 5.4.45 константа та-же { 256 }
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  php --re json
Extension [ <persistent> extension #11 json version 1.2.1 ] {
 
  - Constants [17] {
    Constant [ integer JSON_HEX_TAG ] { 1 }
    Constant [ integer JSON_HEX_AMP ] { 2 }
    Constant [ integer JSON_HEX_APOS ] { 4 }
    Constant [ integer JSON_HEX_QUOT ] { 8 }
    Constant [ integer JSON_FORCE_OBJECT ] { 16 }
    Constant [ integer JSON_NUMERIC_CHECK ] { 32 }
    Constant [ integer JSON_UNESCAPED_SLASHES ] { 64 }
    Constant [ integer JSON_PRETTY_PRINT ] { 128 }
    Constant [ integer JSON_UNESCAPED_UNICODE ] { 256 }
    Constant [ integer JSON_ERROR_NONE ] { 0 }
    Constant [ integer JSON_ERROR_DEPTH ] { 1 }
    Constant [ integer JSON_ERROR_STATE_MISMATCH ] { 2 }
    Constant [ integer JSON_ERROR_CTRL_CHAR ] { 3 }
    Constant [ integer JSON_ERROR_SYNTAX ] { 4 }
    Constant [ integer JSON_ERROR_UTF8 ] { 5 }
    Constant [ integer JSON_OBJECT_AS_ARRAY ] { 1 }
    Constant [ integer JSON_BIGINT_AS_STRING ] { 2 }
  }
 
  - Functions {
...
Цитата Сообщение от HotReboot Посмотреть сообщение
cp1251 и php5.3
Список параметров

value
value - значение, которое будет закодировано. Может быть любого типа, кроме resource.

Функция работает только с кодировкой UTF-8.
...
в винде с cp866 например
php -r "var_export(json_encode(['йцукенгщзх']));"
'[null]'
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
22.07.2023, 06:57  [ТС]
Вы не поняли. В php >5.3
PHP
1
2
fileds = ['filed_one' => 'тест', 'field_two' => 'test'];
echo json_encode($fileds, JSON_UNESCAPED_UNICODE);
JSON
1
{"filed_one":"тест", "field_two":'test'}
при php же 5.3
JSON
1
{"filed_one":NULL, "field_two":'test'}
и без JSON_UNESCAPED_UNICODE такая же петрушка.
0
Невнимательный
 Аватар для ft4l
3112 / 1290 / 359
Регистрация: 08.02.2013
Сообщений: 7,566
Записей в блоге: 2
22.07.2023, 08:50
Цитата Сообщение от HotReboot Посмотреть сообщение
{"filed_one":NULL, "field_two":'test'}
... так и предположил, что русский текст в null...
Но если точно подсовывается строка в UTF-8, и на выходе такое,
то можно было-бы Багрепорт, если-бы 5.3 на была-бы давно похоронена ))

Но в 5.4 не замечаю такого... например в консоли
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<--- X:\ --->
  php -v
PHP 5.4.45 (cli) (built: Sep  2 2015 23:48:30)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
 
<--- X:\ --->
  php -r "echo json_encode( iconv('CP1251','UTF-8', 'тест'), 256 );"
"╤В╨╡╤Б╤В"
<--- X:\ --->
  chcp 65001
Active code page: 65001
 
<--- X:\ --->
  php -r "echo json_encode( iconv('CP1251','UTF-8', 'тест'), 256 );"
"тест"�т""
<--- X:\ --->
  php -r "echo json_encode( iconv('CP1251','UTF-8', 'тест'));"
"\u0442\u0435\u0441\u0442"
... то что "тест"�т"" вместо "тест" это баг,) но вроде консоли, а не php
0
Надуваю лягушек
Эксперт PHP
 Аватар для Царь Бабай
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
23.07.2023, 17:37
Версия php:
5.5.0 Добавлен параметр depth.
5.4.0 В options были добавлены константы JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, и JSON_UNESCAPED_UNICODE.
5.3.3 Константа JSON_NUMERIC_CHECK была добавлена в option.
5.3.0 Был добавлен параметр options.

обновлять версию или строить комбаин:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function json_fix_cyr($json_str) {
    $cyr_chars = array (
        '\u0430' => 'а', '\u0410' => 'А',
        '\u0431' => 'б', '\u0411' => 'Б',
        '\u0432' => 'в', '\u0412' => 'В',
        '\u0433' => 'г', '\u0413' => 'Г',
        '\u0434' => 'д', '\u0414' => 'Д',
        '\u0435' => 'е', '\u0415' => 'Е',
        '\u0451' => 'ё', '\u0401' => 'Ё',
        '\u0436' => 'ж', '\u0416' => 'Ж',
        '\u0437' => 'з', '\u0417' => 'З',
        '\u0438' => 'и', '\u0418' => 'И',
        '\u0439' => 'й', '\u0419' => 'Й',
        '\u043a' => 'к', '\u041a' => 'К',
        '\u043b' => 'л', '\u041b' => 'Л',
        '\u043c' => 'м', '\u041c' => 'М',
        '\u043d' => 'н', '\u041d' => 'Н',
        '\u043e' => 'о', '\u041e' => 'О',
        '\u043f' => 'п', '\u041f' => 'П',
        '\u0440' => 'р', '\u0420' => 'Р',
        '\u0441' => 'с', '\u0421' => 'С',
        '\u0442' => 'т', '\u0422' => 'Т',
        '\u0443' => 'у', '\u0423' => 'У',
        '\u0444' => 'ф', '\u0424' => 'Ф',
        '\u0445' => 'х', '\u0425' => 'Х',
        '\u0446' => 'ц', '\u0426' => 'Ц',
        '\u0447' => 'ч', '\u0427' => 'Ч',
        '\u0448' => 'ш', '\u0428' => 'Ш',
        '\u0449' => 'щ', '\u0429' => 'Щ',
        '\u044a' => 'ъ', '\u042a' => 'Ъ',
        '\u044b' => 'ы', '\u042b' => 'Ы',
        '\u044c' => 'ь', '\u042c' => 'Ь',
        '\u044d' => 'э', '\u042d' => 'Э',
        '\u044e' => 'ю', '\u042e' => 'Ю',
        '\u044f' => 'я', '\u042f' => 'Я',
 
        '\r' => '',
        '\n' => '<br />',
        '\t' => ''
    );
 
    foreach ($cyr_chars as $cyr_char_key => $cyr_char) {
        $json_str = str_replace($cyr_char_key, $cyr_char, $json_str);
    }
    return $json_str;
}
 
echo json_fix_cyr(json_encode(array("собака","кошка"))); // ["собака","кошка"]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.07.2023, 17:37
Помогаю со студенческими работами здесь

json_encode
$a=&quot;background:#f0f0e7;display:block;border-radius:5px;box-shadow:0,0,10px,rgba(0,0,0,0.5);height:80%;width:80%;position:absolute;z-index:5;...

json_encode
Кодирую русский текст. Все верно кодируется, (u*****), только перед u не ставится обратный слэш, поэтому невозможно раскодировать. Как...

json_encode
Всем привет! Может кто нибудь объяснить? Вот такие данные в $row - это хорошо $resultDB = DB::query($sql); $check =...

Ошибка с json_encode
При открытии кода в браузере выдаёт ошибку Parse error: syntax error, unexpected ' if($_GET) echo json_encode(); else echo...

PHP json_encode()
Здравствуйте, есть массив: &lt;?php $arr = array ('a'=&gt;1,'b'=&gt;2,'c'=&gt;3,'d'=&gt;4,'e'=&gt;5); echo json_encode($arr); ?&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru