powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / кодировка JSON в Oracle
17 сообщений из 17, страница 1 из 1
кодировка JSON в Oracle
    #39967728
persona_grato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

При получении JSON в БД через Web-сервис русские буквы представляются
в таком виде

Код: plsql
1.
???????????????????? ????N????????>??N?N? N????>????N?N? ???>??N?N???N???N?"



Как можно быстро убрать проблему?

Достаточно даже просто прочитать один раз текст из JSON...
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967731
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
persona_grato
в таком виде

В каком виде?

persona_grato
Как можно быстро убрать проблему?

Проверить везде кодировку.
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967744
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
persona_grato
Добрый день.

При получении JSON в БД через Web-сервис русские буквы представляются
в таком виде

Код: plsql
1.
???????????????????? ????N????????>??N?N? N????>????N?N? ???>??N?N???N???N?"



Как можно быстро убрать проблему?

Достаточно даже просто прочитать один раз текст из JSON...


Звонок в ТехподдержкуЯ что-то нажала, и все погасло...


1) Что сделали ( по какому документу)
2) Что получили (ошибка какая, не в пересказе, а полное сообщение об ошибках, и не printscreen)
3) Версия базы, системы, чем тестировали

Код: plsql
1.
2.
select * from v$version;
select parameter||'='||VALUE as info from nls_database_parameters where lower(parameter) like '%char%';




Для информации

Студентам, желающим помощи
HOWTO :: Как правильно задавать вопросы
Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967751
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
persona_grato
Добрый день.

При получении JSON в БД через Web-сервис русские буквы представляются
в таком виде

Код: plsql
1.
???????????????????? ????N????????>??N?N? N????>????N?N? ???>??N?N???N???N?"



Как можно быстро убрать проблему?

Достаточно даже просто прочитать один раз текст из JSON...

У тебя какая задача стоит? Правильно передать кодировку? Или увидеть ее глазами?

Это разные задачи. Кроме того JSON должен поддерживать unicode escape символы наподобие.

Код: javascript
1.
{ "name" : "а" }



заверни все национальные буквы в такие эскейп последовательности и будет пролезать через любой ASCII терминал и браузер
и в лог файлах будет соответствие 100%
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967754
persona_grato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

сейчас стоит задача просто прочитать это "русское" сообщение в JSON-е...
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967757
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя есть варианты. Как написал один господин

Проверить везде кодировку.

Везде - значит везде. Во всем стеке технологий.

И второй вариант - пофиксить их в одном месте и всегда видеть однозначное представление.

Ну и в средах разработки и умных редакторах можно сделать unwrap и видеть русские буквы.
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967758
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
persona_grato,

> При получении JSON в БД через Web-сервис русские буквы представляются

Что за Web-сервис?
Чем выполняешь запрос и чем смотришь
Как получаешь json?
Если в SQL, то json_query кодировку показывает правильно?
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967792
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Проверить везде кодировку.


Ну и в средах разработки и умных редакторах можно сделать unwrap и видеть русские буквы.
Жаль расстраивать, но знаки вопроса означают невосстановимую потерю информации ввиду несовместимости задекларированных кодировок клиента и сервера бд.
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967838
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

Значит надо посмотреть в каком виде они лежат в базе. В каком виде попадают в базу. Так можно узнать какой компонент гадит.
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967841
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо дернуть SELECT по базе. И посмотреть незамутнённым глазом на то как данные лежат. Тогда мы сможем
оценить масштаб трагеии.

Возможно надо будет сделать какой-то unicode конвертацию чтоб кракозябры отформатировались не вопросиками
а чем-то осмысленным.
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967945
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
andrey_anonymous,

Значит надо посмотреть в каком виде они лежат в базе. В каком виде попадают в базу. Так можно узнать какой компонент гадит.

"Гадит" стандартный Oracle Client, которому забыли заявить кодировку данных.
Ну или кодировка БД не способна принять передаваемые символы, если БД слеплена в ее "родном" us7ascii
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39967949
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор ану попробуй так

Код: plsql
1.
SELECT rawtohex(jsonField) FROM fuckenJsonTable;



Что в результате?
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39968329
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Автор ану попробуй


1. "пробовать" стоило бы dump, а не rawtohex
2. Имело смысл уточнить у автора значение NLS_CHARACTERSET БД:
Код: plsql
1.
select * from nls_database_parameters where parameter like 'NLS_CHARACTERSET';


3. Имело смысл уточнить детали подключения к БД - какой клиент, как настроен (NLS_LANG)
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39968332
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я не против. Но NLS* параметры это оракловый фактор. Есть еще настройки самого приложения.
Если это java app и в нем не были адекватные конфигурации Locale, то однобайтные кодировки
могут быть безнадёжно сломаны. И вот эти вот цепочки вопросительных знаков в первом посту
КМК свидетельсвтуют о сломанных кодировках в двух местах.
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39968344
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
КМК

Перекреститесь.
Замена символа на знак вопроса при невозможности представить символ в целевой кодировке - фишка Oracle Client.
Это не сломанная кодировка, это - сигнал "нунишмогла".
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39968351
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
mayton
КМК

Перекреститесь.
Замена символа на знак вопроса при невозможности представить символ в целевой кодировке - фишка Oracle Client.
Это не сломанная кодировка, это - сигнал "нунишмогла".

Когда автор написал "через Web-сервис" то я так себе это понял что он публикует эти данные где-то в вебе.

Но он хитрый партизан и так и не раскололся в консоли это или в браузере или в SOAP-UI.
...
Рейтинг: 0 / 0
кодировка JSON в Oracle
    #39968364
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
не раскололся в консоли это или в браузере или в SOAP-UI.

Вариантов не так много.
1. использует Oracle Client - тогда некорректная установка NLS_LANG (если совсем не установить, то дефолт - US7ASCII, который не воспринимает коды старше 127 => знаки вопроса). Тут надо установить NLS_LANG в ту кодировку, которую используют в JSON.
2. использует thin client (java), но БД создана "по умолчанию" с той же US7ASCII. Тут можно либо пересоздать БД, либо использовать N-типы, либо иметь жесткий геморрой, заказав на клиенте кодировку, совпадающую с кодировкой БД (т.е. отказавшись от контроля кодировок).
3. Грузит нормально, но читает (проверяет) из ненастроенного клиента - эту ситуацию поможет отследить select dump(...)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / кодировка JSON в Oracle
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]