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

Тема в разделе "Lotus - Xpages", создана пользователем JohnLemon, 17 ноя 2015.

Метки:
  1. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Всем здравствуйте, может кто подскажет. Проблема в следующем: если сохраняю в документ с использованием метода toJson Java коверкает кодировку. Например сохраняю так
    Код (Javascript):
    jsonArray.push(toJson(viewScope.secondResultVariants[b]));
    idoc.replaceItemValue("secondResultVariants", jsonArray);
    В базе сохраняется что то в роде такого:
    Можно ли как то указать кодировку "на лету"
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    "обычно" энкодят национальные кодировки...
    хорошей практикой является использование UTF8
    скорее всего "портит" кодировку не java, а тот кто вин1251 использует ;)
     
    3 пользователям это понравилось.
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    3 пользователям это понравилось.
  4. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    :banghead:
    Да тут мой косяк, можно как то безболезненно поставить utf-8, в базе просто уже есть данные... И где выставить кодировку?
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    в базе её "нет" (кодировки) там LMBCS
    а вот какая кодировка на странице (кот. с сервера попадает в браузер) - это достаточно "критично"
    [DOUBLEPOST=1447774637,1447774451][/DOUBLEPOST]если константы стринговые - в какой кодировке JS - тоже может оказаться значимым
     
    3 пользователям это понравилось.
  6. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    а как мне можно перекодировать то теперь ) ? может есть методы какие нибудь на js ?
     
  7. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    и вообще как я понимаю \u0431 это java sourсe code какой то....
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    это юникодовый символ http://www.fileformat.info/info/unicode/char/0431/index.htm
    как перекодировать - брать и заменять ;)
    http://stackoverflow.com/questions/7885096/how-do-i-decode-a-string-with-escaped-unicode
     
    3 пользователям это понравилось.
  9. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Два раза кодировать, перед записью в базу и потом при выборе значения из нее как то не очень хорошо по моему. Кстати страницы у меня в utf-8 в роде.
     
  10. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    И вообще че за фигня на форуме с репутацией, я выбираю поставить 3 он -1 ставит капец, его сделают когда нибудь нормальным, авториация постоянно вообще выскакивает невозможно нормально общаться ).
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    откуда берется этот
    [DOUBLEPOST=1447842709,1447842452][/DOUBLEPOST]и второе - у JS есть методы преобразования в строку и обратно, для JSON ...
    https://learn.javascript.ru/json
    то что происходит у вас - я мало понимаю
     
    3 пользователям это понравилось.
  12. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Юзер выбирает различные значения, в viewScope.secondResultVariants создается массив объектов JSON я его хочу преобразовать в строку и записать в поле в документе а при загрузки дока преобразовать в объект и отобразить на странице в репитах. Но toJson мне портит всю кодировку и fromJson тоже.
    Тут клиентский код мне он не очень подходит (
    Этих методов нету как я понимаю в ssjs
     
  13. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    С какого боку он вообще при таком раскладе:
    Код (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)
    выводит
     
  14. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    - ну и наплюй на джейсон:
    1 джойнь данные разделителями
    2 сохраняй эту строку в базу.
    --------------------
    3 читай эту строку из базы.
    4 сплить её по твоему разделителю и отдавай на растерзание репитеру.

    - объект ?? Репитер принимает массив. Любой.
     
    3 пользователям это понравилось.
  15. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    У меня репитер отображает массив объектов.
    Наверное так и придется но как то это не по современному же будет и уныло.... Нафик делать тогда fromJson и toJson если он так коверкает
     
  16. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    да нормально это и быстрее работает.
    Json используют для унификации коммуникации (и если набор данных переменный), а ты всё сам пишешь.
    Не парься.
     
  17. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ну вот и у меня такой вопрос
    [DOUBLEPOST=1447851440,1447851412][/DOUBLEPOST]он не коверкает, а делает "универсальным", а вот анэскейпить тогда нужно
     
Загрузка...
Похожие Темы - Проблема кодировкой
  1. Borodo
    Ответов:
    1
    Просмотров:
    1.283
  2. c0de3r
    Ответов:
    4
    Просмотров:
    110
  3. DobermannTT
    Ответов:
    10
    Просмотров:
    132
  4. SoulPaladin
    Ответов:
    3
    Просмотров:
    120
  5. Artael
    Ответов:
    1
    Просмотров:
    108

Поделиться этой страницей