Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 кодировка  [new]
u78
Member

Откуда: Москва
Сообщений: 559
Данные с веба приходят в UTF-8
Если сохранить как есть, то в таблице будут кракозябры (как на моей веб странице, так и в SQL браузере)

Что бы корректно записать в БД надо перекодировать
	 set requestData = %request.Content.Read()	//читаем со страницы
	 
	 set requestData = $ZCONVERT(requestData,"I","UTF8") //исправление кодировки
	 set dynObj = {}.%FromJSON(requestData)		//JSON строка -> динамический объект
	 
	 //создаём и заполняем класс
	 set myObj = ##class(Package.MyClass).%New(dynObj.name, dynObj.author)


Я так понимаю что где то прописана кодировка БД отличная от UTF-8 и поэтому я должен приводить в (какую то) кодировку перед записью.

Вопрос - где посмотреть какая кодировка у моей системы? Как её поменять?
12 май 18, 15:19    [21405013]     Ответить | Цитировать Сообщить модератору
 Re: кодировка  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3755
u78,

Например, в портале
Система > Конфигурация > Определение локали

Но если ваша система не юникодовская, а восьмибитная, то изменить вы это так просто не сможете.
12 май 18, 15:26    [21405023]     Ответить | Цитировать Сообщить модератору
 Re: кодировка  [new]
u78
Member

Откуда: Москва
Сообщений: 559
Блок А.Н.,

пишет что юникод

Свойства локали rusw (Russian, Russia, Unicode):

Страна Russia (RU)
язык Russian (ru)
Кодировка Unicode
Денежная единица РУБЛЬ
12 май 18, 16:01    [21405057]     Ответить | Цитировать Сообщить модератору
 Re: кодировка  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3755
u78,

ну, получается, контент сайта закодирован дважды - сначала в юникод, а потом еще раз в юникод.
Видимо, так ведет себя шлюз.
13 май 18, 00:25    [21405925]     Ответить | Цитировать Сообщить модератору
 Re: кодировка  [new]
ну я
Member

Откуда: Stalingrad
Сообщений: 1149
u78
Данные с веба приходят в UTF-8
Если сохранить как есть, то в таблице будут кракозябры

и поэтому я должен приводить в (какую то) кодировку перед записью.

Правильно - наоборот, как сделано. Надо знать ИЗ какой брать.
Не В какую, а ИЗ какой.

PS. А юникоды там разные, в одном месте UTF-8, в другом Wide(UTF-16).
14 май 18, 07:59    [21407046]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить