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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировками 
V
    Опции темы
goodday1941
Дата 14.7.2007, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

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



в общем, проблема в следующем: я беру строку с ТексФилда, передаю ее значение через сокеты и отображаю на другом компе в эдиторПене с добавлением хтмл тегов. В некоторых случаях на приемной тачке отображаються козяблики(в зависимости от настроек винды(с mui связаных), или если одна тачка под виндой а вторая под линухой)... в теории ведь строки в utf-8 (ну или utf-16, эт не важно походу), потому все должно отобраджаться...
ПС... никаких преобразований кодировок по типу new String (myString.getBytes("code1"), "code2") не делаю!

что можете посоветовать для решения проблемы?

Это сообщение отредактировал(а) goodday1941 - 14.7.2007, 15:51


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
Maksym
Дата 14.7.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



При конвертации массива байт в строку и обратно без явного указания кодировки она берется из настроек системы и потому может отличаться на отправляющей и принимающей машинах. Поэтому и отправлять и принимать желательно с явным указанием подходящей тебе кодировки.

Добавлено через 4 минуты и 45 секунд
Кстати, узнать дефолтную локаль jvm (которая инициализируется на основе системной) можно так: java.util.Locale.getDefault().

Добавлено через 10 минут и 1 секунду
А системную кодировку (ту самую, которая будет использоваться по умолчанию) так: System.getProperty("file.encoding").
PM MAIL   Вверх
goodday1941
Дата 14.7.2007, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

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



гм.. частично не соглачен.. берет кодировку по умалчания если например я использую PrintStream или PrintWriter, я же просто передаю обьект String... и ява знает что тама utf-8, так как хранится информация в String с кодировкой utf-8

Добавлено через 4 минуты и 32 секунды
Цитата(Maksym @  14.7.2007,  16:17 Найти цитируемый пост)
Кстати, узнать дефолтную локаль jvm (которая инициализируется на основе системной) можно так: java.util.Locale.getDefault().

эм.. а зачем мне дефалтная локаль, и что это такое? (:



Цитата(Maksym @  14.7.2007,  16:17 Найти цитируемый пост)
System.getProperty("file.encoding")

эт мы знаем smile мона еще  Charset.defaultCharset().displayName()


Это сообщение отредактировал(а) goodday1941 - 14.7.2007, 16:28


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
Maksym
Дата 14.7.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



goodday1941
А покажи ка код, в котором ты отправляешь строку в сокет и код, в котором ты ее извлекаешь?
Цитата(goodday1941 @  14.7.2007,  16:28 Найти цитируемый пост)
эм.. а зачем мне дефалтная локаль, и что это такое? (:

это меня отвлекли и я не то написал, получилось типа для информации smile

Добавлено через 4 минуты и 12 секунд
Цитата(goodday1941 @  14.7.2007,  16:28 Найти цитируемый пост)
эт мы знаем smile мона еще  Charset.defaultCharset().displayName()

мм, это в пятой java появилось, не пользовался ни разу, честно говоря.. возьмем на вооружение

Это сообщение отредактировал(а) Maksym - 14.7.2007, 16:37
PM MAIL   Вверх
goodday1941
Дата 14.7.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

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



эм по поводу кода сложно будет... был написан аналог JMS (только получше)

у мну просто есть отсыльшик сообщений и кетчер сообщений.... тоесть как бы отсыльщиком я делаю что то по типу:
         

Код

 proxy.sendMessage(new ChatMessage(proxy.getUserID(), currentUserName, ChatMessage.MESSAGE,
                            textFieldEnteredText.getText().trim(), selectedColorPanel.getBackground(), comboBoxFont.getSelectedItem(),
                            spinnerSize.getValue(), checkBoxU.isSelected(), checkBoxI.isSelected(), checkBoxU.isSelected()), tabNameTopic.get(tabbedPaneChennels.getTitleAt(tabbedPaneChennels.getSelectedIndex())));
  

а кетчером уже что то по типу:  

   
Код

 public class CatchMessageEventListener implements CatchMessageListener {
        private JEditorPane pane;

        public void messageCatched(CatchMessageEvent evt) {
            CCMessage cc = (CCMessage) evt.getSource();
            Object mes = cc.getObject();
            int topicID = cc.getTopicID();
   if (mes instanceof ChatMessage) {
                ChatMessage mess = (ChatMessage) mes;
            addText(pane, message));
}
}
}


Добавлено через 1 минуту и 17 секунд
кажись только что у ся в коде глупость нашел smile

        
Код

   addText(pane, new String(message.getBytes()));
        
     
а в данной ситуации используеться кодировка по умолчанию, что естественно приведет в козяблиукам

Добавлено через 4 минуты и 20 секунд
тоесть получил я строку правильно, но потом уже ее искарежыл  smile 


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
Maksym
Дата 14.7.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Цитата(goodday1941 @  14.7.2007,  16:44 Найти цитируемый пост)
а в данной ситуации используеться кодировка по умолчанию

smile вот вот, где то это могло случиться

Это сообщение отредактировал(а) Maksym - 14.7.2007, 17:01
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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