Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Немецкая ОС, JAVA и кодировка 
:(
    Опции темы
Wowa
Дата 6.2.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



А попробуй эту кверю первым делом: SET NAMES 'windows-1251'
PM WWW   Вверх
LSD
Дата 6.2.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Покурив немного этот мануал, я решил что надо попробовать такой URL:
Код
jdbc:mysql://mojcomp:3306/vpf?useUnicode=true&characterEncoding=windows-1251

или такой:
Код
jdbc:mysql://mojcomp:3306/vpf?useUnicode=false&characterEncoding=windows-1251

(так и не понял назначение параметра useUnicode)


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
sergejzr
Дата 6.2.2006, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



LSD, пробовал...
Добавлено @ 14:48
Цитата(Wowa @ 6.2.2006, 12:02 Найти цитируемый пост)

А попробуй эту кверю первым делом: SET NAMES 'windows-1251'

Без изменений.

Блин, ну не руками же перекодировать...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Wowa
Дата 6.2.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



sergej.z какая версия мускула стоит?


А что если создать заново базу и таблицу в кодировке windows-1251, записать туда мусор, а затем попробовать явой их получить?
PM WWW   Вверх
sergejzr
Дата 6.2.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Я могу выписать таблицу букв - чисел может по ним кодировку определить?



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
LSD
Дата 6.2.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Если записать строку в базу, а потом ее считать, то все впорядке с кодировкой?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Wowa
Дата 6.2.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(sergej.z @ 6.2.2006, 14:21 Найти цитируемый пост)

может по ним кодировку определить?

Я дума., что кодировку определять не стоит. Т.к. это не кодировка, а просто поломанный текст. Где-то НЕ с той кодировки происходит конвертацию в другую. В результате - абра-кадабра.

P.S. Кстати, ява использует utf-8 или utf-16?
PM WWW   Вверх
LSD
Дата 6.2.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Wowa @ 6.2.2006, 16:48 Найти цитируемый пост)
Кстати, ява использует utf-8 или utf-16?

Внутри class-файлов UTF-8, внутри JVM - UTF-16.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
sergejzr
Дата 6.2.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Вот такая..
А= -64
Б= -63
В= -62
Г= -61
Д= -60
Е= -59
Е= -88
Ж= -58
З= -57
И= -56
Й= -55
К= -54
Л= -53
М= -52
Н= -51
О= -50
П= -49
Р= -48
С= -47
Т= -46
У= -45
Ф= -44
Х= -43
Ц= -42
Ч= -41
Ш= -40
Щ= -39
ъ= -38
Ы= -37
ь= -36
Э= -35
Ю= -34
Я= -33
а= -32
б= -31
в= -30
г= -29
д= -28
е= -27
ё= -72
ж= -26
з= -25
и= -24
й= -23
к= -22
л= -21
м= -20
н= -19
о= -18
п= -17
р= -16
с= -15
т= -14
у= -13
ф= -12
х= -11
ц= -10
ч= -9
ш= -8
щ= -7
ъ= -6
ы= -5
ь= -4
э= -3
ю= -2
я= -1
Добавлено @ 17:02
Если пишу в базу - вопросы забиваются. надо попробовать в различных кодировках...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
LSD
Дата 6.2.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(sergej.z @ 6.2.2006, 16:51 Найти цитируемый пост)
Вот такая..

Это windows-1251.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
sergejzr
Дата 6.2.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Цитата(LSD @ 6.2.2006, 15:04 Найти цитируемый пост)

Это windows-1251.

Как бы я хотел, цчтобы йето так было. Почему тогда кракозяблы?
Сейчас насильственно перекодировал по таблице байт за байтом - стало нормально. Но это не выход.. Попробую обе таблицы вывести из базы и из программы. Посмотрим на отличия...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 6.2.2006, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Хммм..

пишу незатейливый код:

Код

String rus="АБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩъЫьЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
                
ResultSet r= stmt.executeQuery("SELECT * FROM ibf_forums where id=80");r.next();
byte[] bts=r.getString("name").getBytes();

for(int i=0,i<bts.length;i++)                        
    out.println(bts[i]+" = '"+rus.charAt(h)+"';");

                    
s=encodeByHand(r.getString("name")); // здесь заменяется по таблице
    
bts=s.getBytes();

for(int i=0;i<bts.length;i++)
out.println(bts[i]+" = '"+rus.charAt(h)+"';");


Прикол в том, что после перекодировки получаются байты со знаками вопроса, но в браузере отображается строка нормально.
А до кодировки распечатывается таблица, а в браузере - каракули.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
LSD
Дата 6.2.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Как я понял в строке содержится последовательно все буквы русского алфавита, да? Выведи на печать такую штуку:
Код
String str = "АБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя";

System.out.println("Russian alphabet");
for(int i = 0; i < str.length(); i++)
  System.out.print(Integer.toHexString(0xFFFF & str.charAt(i)));
System.out.println();

byte[] win = str.getBytes("windows-1251");

System.out.println("Russian alphabet in windows-1251");
for(int i = 0; i < win.length; i++)
  System.out.print(Integer.toHexString(0xFF & win[i]));
System.out.println();

str = {читаем строку из базы};
System.out.println("Russian alphabet in database");
for(int i = 0; i < str.length(); i++)
  System.out.print(Integer.toHexString(0xFFFF & str.charAt(i)));
System.out.println();



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
sergejzr
Дата 6.2.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Я добавил пробелы между отдельными буквами и распечатал ещё раз само слово
результат: http://84.136.173.123:8080/forum/forumHandler


Цитата

Russian alphabet
410 411 412 413 414 415 415 416 417 418 419 41a 41b 41c 41d 41e 41f 420 421 422 423 424 425 426 427 428 429 44a 42b 44c 42d 42e 42f 430 431 432 433 434 435 451 436 437 438 439 43a 43b 43c 43d 43e 43f 440 441 442 443 444 445 446 447 448 449 44a 44b 44c 44d 44e 44f
АБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩъЫьЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя
Russian alphabet in windows-1251
c0 c1 c2 c3 c4 c5 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 fa db fc dd de df e0 e1 e2 e3 e4 e5 b8 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
??????????????????????????????????????????????????????????????????
Russian alphabet in database
c0 c1 c2 c3 c4 c5 a8 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 b8 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
??????????????????????????????????????????????????????????????????

Добавлено @ 21:04
Результат можно интерпретировать. как то, что кодировка самого исходника не 1251, верно?
но ведь она такая. или я чегото не понимаю совсем... Какая она тогда?..
Правда выводя на soket я пишу кодировку stream'у 1251 ещё раз
Добавлено @ 21:06
Там если что маленькое несоответсвие в базе Ъ, Ь большими, а в коде маленькими остальное один к одному


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 6.2.2006, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Вот! проблема обрисовалась!!!!

Я убрал setCharacterEncoding из response. Теперь строки напрямую из базы пмшуться на сокет. Отображается правильно. Осталась только трабла со строками редактора. Как мне их тут в эклипсе сразу в 1251 писать? Вроде выставлено всё как надо в Preferences. А он как видишь чтото странное делает с ними..

В любом случае - спасибо огромное. Это уже хороший толчёк!.
Добавлено @ 21:34
Вот, что он выдаёт мне из твоего кода

Russian alphabet
410 411 412 413 414 415 415 416 417 418 419 41a 41b 41c 41d 41e 41f 420 421 422 423 424 425 426 427 428 429 44a 42b 44c 42d 42e 42f 430 431 432 433 434 435 451 436 437 438 439 43a 43b 43c 43d 43e 43f 440 441 442 443 444 445 446 447 448 449 44a 44b 44c 44d 44e 44f
??????????????????????????????????????????????????????????????????
Russian alphabet in windows-1251
c0 c1 c2 c3 c4 c5 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 fa db fc dd de df e0 e1 e2 e3 e4 e5 b8 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
АБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩъЫьЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя
Russian alphabet in database
c0 c1 c2 c3 c4 c5 a8 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 b8 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя

Хотя кодировка файла стоит CP1251, по всей видимости она не 1251. Бяка какая то..
Добавлено @ 21:38
Kaзчется я понимаю... Исходник всегда компилится в УТФ-8, верно? и перекодировать соответственно всегда надо руками. Просто выдать строку на сокет не получится. Правильно?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0901 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.