![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
привет!
Есть простая до безобразия задача: Представить строку в формате UTF-8. Мой вариант:
на Windows машине работает без проблем. Но на Linux работает не правильно. ![]() |
|||
|
||||
beroal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 18.1.2003 Где: Украина Репутация: нет Всего: 3 |
Ну, у меня str == "ололо трололо". Результат на первый взгляд является корректным. Что вас не устраивает и что вы хотите получить?
|
|||
|
||||
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
не знаю как у вас, у меня со строки: "руссо язык" (без ковычек)
На windows результат:
На Ubuntu:
|
||||
|
|||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Прикол.
Для Линукса вообще не нужно никаких преобразований. Можно просто использовать String, как String, он уже в UTF-8 ![]() |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
String всегда - и в Windows, и в Linux - хранится в UTF-16.
При сохранении в массив байт или файл нужно выбрать кодировку. По умолчанию в Windows (русской!) это windows-1251, а в Ubuntu - UTF8 (в старых версиях Linux, опять же русских - КОИ8Р). Преобразование же из String в String со сменой кодировки выглядит странно, зачем это? Добавлено через 5 минут и 38 секунд Кстати, возможно у Вас проблема с кодировкой исходников - в Widnows это, опять таки по умолчанию, windows-1251, а в Ubuntu - UTF8. В таком случае, нужно указывать компилятору кодировку исходников, а не пытаться исправить ошибку во время выполнения. Кроссплатформенные исходники лучше хранить в UTF8. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
math64, да, в теории мы все сильны
![]() Как я уже сказал. Есть простейшая до безобразия задача. Представить строку в формате utf8. Нужно это для платежной системы. Формируешь строку, у тебя есть ключ, на основе которого ты от строки и ключа береш хэш и посылаешь этот хэш на сервер вместе с данными. Там пых пых сервер берет данные формирует, по сути, такую же строку и зная этот же ключ, берет хэш от строки. И сравнивает хэш свой полученный с тем что пришел. Если все ок, значит все ок. Если делать все это стандартно - запрос в БД, формирование ТО, формирование запросы и подстановка всех этих данных, то с русским языком начинаются проблемы. Методом проб и ошибок, выяснилось, что указанные мной преобразования в первом посте, помогают решить проблему кириллицы. Но то было на моем локальном компе, как только код попал на линукс сервер, все сломалось. Хотя признаться, я до сих пор на 100% так и не понял фразу "сформировать строку в формате UTF8", поскольку в первом моем посте я беру строку в формате utf8 и указываю виндовый чарсет для формирования новой строки. Т.е. по-сути, новая строка в формате windows-1251. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |