Проблема с кодировкой

JohnLemon

Well-known member
20.08.2014
274
2
#1
Всем здравствуйте, может кто подскажет. Проблема в следующем: если сохраняю в документ с использованием метода toJson Java коверкает кодировку. Например сохраняю так
JavaScript:
jsonArray.push(toJson(viewScope.secondResultVariants[b]));
idoc.replaceItemValue("secondResultVariants", jsonArray);
В базе сохраняется что то в роде такого:
"{"id":"C41B4BD5C70D20E446257EFA002C80F0","name":"\u0431\u0435\u043B\u043E\u043A (Tp 47)"}"
"{"id":"299F3B552DA79C2146257EFA002D5804","name":"\u0431\u0435\u043B\u043E\u043A (TmpA 45)"}"
Можно ли как то указать кодировку "на лету"
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#2
"обычно" энкодят национальные кодировки...
хорошей практикой является использование UTF8
скорее всего "портит" кодировку не java, а тот кто вин1251 использует ;)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#5
безболезненно поставить utf-8, в базе
в базе её "нет" (кодировки) там
Для просмотра контента необходимо: Войти или зарегистрироваться

а вот какая кодировка на странице (кот. с сервера попадает в браузер) - это достаточно "критично"
[DOUBLEPOST=1447774637,1447774451][/DOUBLEPOST]если константы стринговые - в какой кодировке JS - тоже может оказаться значимым
 

JohnLemon

Well-known member
20.08.2014
274
2
#6
а как мне можно перекодировать то теперь ) ? может есть методы какие нибудь на js ?
 

JohnLemon

Well-known member
20.08.2014
274
2
#7
и вообще как я понимаю \u0431 это java sourсe code какой то....
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#8
а как мне можно перекодировать то теперь ) ?
и вообще как я понимаю \u0431 это java sourсe code какой то....
это юникодовый символ
Для просмотра контента необходимо: Войти или зарегистрироваться

как перекодировать - брать и заменять ;)
Для просмотра контента необходимо: Войти или зарегистрироваться
 

JohnLemon

Well-known member
20.08.2014
274
2
#9
Два раза кодировать, перед записью в базу и потом при выборе значения из нее как то не очень хорошо по моему. Кстати страницы у меня в utf-8 в роде.
<?xml version="1.0" encoding="UTF-8"?>
 

JohnLemon

Well-known member
20.08.2014
274
2
#10
И вообще че за фигня на форуме с репутацией, я выбираю поставить 3 он -1 ставит капец, его сделают когда нибудь нормальным, авториация постоянно вообще выскакивает невозможно нормально общаться ).
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#11
Два раза кодировать, перед записью в базу и потом при выборе значения из нее как то не очень хорошо по моему. Кстати страницы у меня в utf-8 в роде.
откуда берется этот [DOUBLEPOST=1447842709,1447842452][/DOUBLEPOST]и второе - у JS есть методы преобразования в строку и обратно, для JSON ...
Для просмотра контента необходимо: Войти или зарегистрироваться

то что происходит у вас - я мало понимаю
 

JohnLemon

Well-known member
20.08.2014
274
2
#12
Юзер выбирает различные значения, в viewScope.secondResultVariants создается массив объектов JSON я его хочу преобразовать в строку и записать в поле в документе а при загрузки дока преобразовать в объект и отобразить на странице в репитах. Но toJson мне портит всю кодировку и fromJson тоже.
Для просмотра контента необходимо: Войти или зарегистрироваться
Тут клиентский код мне он не очень подходит (
JSON.parse — читает объекты из строки в формате JSON.
JSON.stringify — превращает объекты в строку в формате JSON, используется, когда нужно из JavaScript передать данные по сети.
Этих методов нету как я понимаю в ssjs
 

JohnLemon

Well-known member
20.08.2014
274
2
#13
С какого боку он вообще при таком раскладе:
JavaScript:
string = '{name:\u041F\u0440\u0438\u0432\u0435\u0442}';
_dump(string)
Мне выводит в консоль:
[DOUBLEPOST=1447847771,1447847590][/DOUBLEPOST]а так:
JavaScript:
var json = {name:'Привет'};  
var string;
string = toJson(json);
_dump(string)
выводит
{name:\u041F\u0440\u0438\u0432\u0435\u0442}
 

alexas1

Lotus team
10.04.2014
726
145
#14
Но toJson мне портит всю кодировку и fromJson тоже.
- ну и наплюй на джейсон:
1 джойнь данные разделителями
2 сохраняй эту строку в базу.
--------------------
3 читай эту строку из базы.
4 сплить её по твоему разделителю и отдавай на растерзание репитеру.

преобразовать в объект и отобразить на странице в репитах
- объект ?? Репитер принимает массив. Любой.
 

JohnLemon

Well-known member
20.08.2014
274
2
#15
- объект ?? Репитер принимает массив. Любой.
У меня репитер отображает массив объектов.
1 джойнь данные разделителями
2 сохраняй эту строку в базу.
--------------------
3 читай эту строку из базы.
4 сплить её по твоему разделителю и отдавай на растерзание репитеру.
Наверное так и придется но как то это не по современному же будет и уныло.... Нафик делать тогда fromJson и toJson если он так коверкает
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#17
Нафик делать тогда fromJson и toJson если он так коверкает
ну вот и у меня такой вопрос
[DOUBLEPOST=1447851440,1447851412][/DOUBLEPOST]он не коверкает, а делает "универсальным", а вот анэскейпить тогда нужно