![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Странности меня преследуют.
По идее ява работает с UTF-8, ведь так? Я настроил всё под UTF-8 (test.java правильно в UTF-8, специально проверил) Теперэ по идее с кириллицей проблем быть не должно, думаю я. Но нижеприведённый код производит знаки вопроса и в файле и в консоли. Ну консоль, она немецкая, я в принципе и не ожидаю чудес, но ведь в файл должно писаться нормально? Вообщето следующей задачей бидет на сокет вывести UTF-8. Но сперва надо проблему с файлами решитэ. А она решаема! Еклипса ведь сохраняет test.java правильно в UTF-8. Какие будут соображения? Может еклипсу надо настроить как нибудь?
|
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
За эклипсу не скажу, а вот при компиляции javac-ом надо указать кодировку которая используется в исходниках javac -encoding, по умолчанию используется системная, а она как я понимаю немецкая, это раз. А во вторых, FileWriter тоже по использует системную кодировку. Поэтому делай так:
-------------------- 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. |
||||
|
|||||
| Nobody |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 4 Всего: 16 |
Когда же все запомнят, что Reader/Writer надо создавать с явным указанием кодировки...
LSD Может где-нибудь это большими буквами написать? -------------------- |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
К сожалению FileWriter-у нельзя указать кодировку, он использует системную. Можно только заменить на комбинацию OutputStreamWriter/FileOutputStream. В FAQ например. Возмешься за статью о кодировках? -------------------- 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. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Отлично, в файл пишется! сейчас попробую на сокет, а пока может будут соображения насчёт консоли?
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Если речь идет о консоли винды, то:
* в консоли выполняем ChCp 1251 и ставим шрифт Lucida Console * запускаем программу с ключем -Dfile.encoding=Cp1251 По идее должно сработать. -------------------- 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. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Продолжение истории.
Всё прекрасно получилось. Странихки генерятся, кодировка совпадает. Трабла с базой. База у меня на компе с русской ОС - Виндовс ХР Получаю строки в странной кодировке и раскодировать уже не могу. Пробовал разные извращения как например: "jdbc:mysql://mojcomp:3306/vpf?useUnicode=true&characterEncoding=UTF-8" Строки - кириллица. Мне надо чтобы он в UTF-8 забирал строки конечно. Может можно как то узнать или установить кодировку строк из базы? И как правильно перекодировать потом? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Перекодировкой строк из кодировки СУБД в 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. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Это MySQL
Xex. Судя по тому, хто говорит конфигурация - UTF-8 Но там каракули. Причём на русской винде (где база стоит) отображается. Я сейчас страницу перегнал в 1251 взглянут´на безобразие можно (тол´ко сервер переодически включается): http://84.136.149.78:8080/forum/forumHandler |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Попробуй первым делом после коннекта провести кверю: SET NAMES 'utf-8'
Добавлено @ 13:20 http://dev.mysql.com/doc/refman/4.1/en/cha...connection.html Добавлено @ 13:23 Что является фактом, так это то, что в форумской базе(той, которую ты используешь также) неправильно прописан charset и Collation для таблица И столбцов в таблицах. Я не знаю, как так вышло - но это прописалось как-то автоматом неправильно. А менять вручную для каждого столбца более 50 таблиц, плюс у самих таблиц - у меня терпения не хватит. Может тут собака зарыта? |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
А как можно вообще это поменять? ябы попробовал на одной таблице, посмотрел, что выйдет.. |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
http://dev.mysql.com/doc/refman/4.1/en/charset-table.html http://dev.mysql.com/doc/refman/4.1/en/charset-column.html Посмотри эти ссылки.. В одной из них: To change the character set (and collation) for all columns in an existing table, use... ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]; Лично у меня вызывает сомнение, что поменяется character set и collation всех столбцов. Я менял это черех пхпмайадмин и менялось только у таблицы, но НЕ у столбцов. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Кстати если сеичас кодировку поставит´cp866 в браузере, тогда можно даже кое что прочитать. Но получается как будто ещё лишний байт там.
|
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
ALTER TABLE mytablename DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
Добавлено @ 13:42 Хотя вообще я согласен! В первом примере же используется CONVERT TO. Так, что столбцы тоже должны быть обработаны по идее. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Хмм- никакой реакции. Кстати на странице там имена фроумов я конвертирую сейчас так
name=new String(r.getString("name").getBytes("UTF-8"),"CP1251"); все остальные имена из базы просто копируются. Поэтому там знаки вопросов.. |
|||
|
||||
![]()
|
| Правила форума "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. |