Микита
ну да
Arslan
С самого сервера может норм будет
Arslan
Была такая фигня
Arslan
Сервер на php?
Luсky
а, так у тебя свой сервер. Конфигурируй его, чтоб отдавал в нормальном формате.
Микита
ну вот мой сервер, он возвращает русские символы в jsone в unicode и еще умеет в utf8
Микита
я пробовал менять на utf8
Микита
но это никак не повлияло
Микита
lua все равно рисует из них Дарова!!!
Arslan
С браузера такие "\u1234" фиговины видны?
Микита
да
Arslan
А сервер на php?
Микита
нет, на пайтоне
Arslan
Ух-ты
Микита
ну я могу и в другой кодировке вернуть эти русские символы
Микита
но мне кажется луа все равно
Arslan
Это не луа
Luсky
lua все равно рисует из них Дарова!!!
а сам луа-скрипт в какой кодировке?
Микита
windows 1251
Luсky
ну вот и разгадка
fgntfg
А причем тут кодировка скрипта?
Luсky
поменяй на утф и попообуй
Микита
да отстань ты от моей кодировки файла
Микита
ахах
Микита
все там норм
fgntfg
скрипт где запускается?
Микита
на винде
Luсky
все там норм
а ты пробовпл?
fgntfg
на винде
в консольке?
Микита
а ты пробовпл?
да попробовал
fgntfg
chcp 650001
fgntfg
или 65001
Микита
короче мой сервер может возвращать так: [{"mid": 66, "name": "Nikita_Cerber", "body": "Дарова!!!"}, {"mid": 99, "name": "Oleg_Burmak", "body": "Broken eyes..."}] и вот так: [{"mid": 66, "name": "Nikita_Cerber", "body": "\u0414\u0430\u0440\u043e\u0432\u0430!!!"}, {"mid": 99, "name": "Oleg_Burmak", "body": "Broken eyes..."}]
fgntfg
это переведет консольку в UTF8
Luсky
да
ну, поменяй ос на нормальную
Микита
и в обеих случаях луа видит это как Дарова!!!
Arslan
Vlad
'\u' это же ескейп для конпелятора.
fgntfg
https://ru.stackoverflow.com/questions/584129/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-json-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0-python
fgntfg
Это питон, посоны
fgntfg
он конвертит в не туда
Arslan
С фиговинами?
Микита
нет, без них
Микита
только с такими \u0414\u0430\u0
Arslan
А
Микита
но если первый пример то без них
Vlad
Последний вопрос: крякозябры в консольке или в файле?
Микита
в консольке при работе
Vlad
в консольке при работе
Тогда вам только заменить шиндошс на что-то другое. Ибо винда не умеет в ютф-8 в терминале.
Vlad
Либо конвертировать руками
Микита
а я скрипт то для игры делаю
Микита
там такая же байда
Микита
в самой игре
fgntfg
чтоб поменять кодировку в консольке - надо chcp сделать
fgntfg
чтоб поменять кодировку внутри скрипта - iconv в скрипте
Vlad
а я скрипт то для игры делаю
Игра мб тоже не умеет в ютф 8
Микита
Игра мб тоже не умеет в ютф 8
в файле русский текст норм, а в приходящем джсоне нет
fgntfg
чтоб поменять в питоне, чтоб отдавал строку как есть - флаг поставить
fgntfg
чо вы голову делаете?
Микита
fgntfg
Потому что файл закоден 1251?)
кодировка файла вообще не причем
fgntfg
это то как у тебя редактор последовательности бит инерпретирует
Luсky
да конечно, не причём, ага.
Arslan
@khmelev77 дай кусочек питона, где кодируется json
Vlad
Короче сервер отдаёт ютф-8, а игра/терминал его не понимают. Надо конвертировать програмно. /тред
Luсky
карочи, бери таблицу и побуквенно заменяй неправельные буквы
Микита
@khmelev77 дай кусочек питона, где кодируется json
en_message = json.dumps(messages, ensure_ascii=True) return HttpResponse(en_message, content_type="application/json") это возвращает [{"mid": 66, "name": "Nikita_Cerber", "body": "\u0414\u0430\u0440\u043e\u0432\u0430!!!"}, {"mid": 99, "name": "Oleg_Burmak", "body": "Broken eyes..."}] en_message = json.dumps(messages, ensure_ascii=False) return HttpResponse(en_message, content_type="application/json") а это возвращает [{"mid": 66, "name": "Nikita_Cerber", "body": "Дарова!!!"}, {"mid": 99, "name": "Oleg_Burmak", "body": "Broken eyes..."}]
Arslan
Уберай ensure_ascii=False
Микита
ну я пробовал
Микита
да сервер тут не причем
Luсky
посмотри, как в модуле сделано
fgntfg
https://luarocks.org/modules/luarocks/lua-iconv