The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблема с кодировкой в JAVA"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема с кодировкой в JAVA"
Сообщение от Durward emailИскать по авторуВ закладки(ok) on 01-Окт-04, 12:01  (MSK)
Привет народ!
Ситуация:
Java-апплет считывает сроки которые парсит пхп-скрипт.
Сам пхп-скрипт берет их из базы, в  которой они лежат в кодироке cp1251.
Проблема:
Каждый раз нужно делать iconv в php - скрипте в нужную кодировку.
Например для винды его делать вообще не нужно.
А если тестишь апплет в линухе (собственно где я его и разрабатываю и у меня там стоит локаль koi8r) , то он ерунду какую-то выводит, до тех пор пока не поставишь в парсящем пхп-шнике iconv из cp1251 в koi8r.
Но это же не универсально, а нужно чтоб работало везде.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Проблема с кодировкой в JAVA"
Сообщение от Lucky emailИскать по авторуВ закладки(??) on 01-Окт-04, 12:15  (MSK)
>Привет народ!
>Ситуация:
>Java-апплет считывает сроки которые парсит пхп-скрипт.
>Сам пхп-скрипт берет их из базы, в  которой они лежат в
>кодироке cp1251.
>Проблема:
>Каждый раз нужно делать iconv в php - скрипте в нужную кодировку.
>
>Например для винды его делать вообще не нужно.
>А если тестишь апплет в линухе (собственно где я его и разрабатываю
>и у меня там стоит локаль koi8r) , то он ерунду
>какую-то выводит, до тех пор пока не поставишь в парсящем пхп-шнике
>iconv из cp1251 в koi8r.
>Но это же не универсально, а нужно чтоб работало везде.
Дак ты определись сначала с какой кодирвкой ты будешь рабоатат
и от этого пляши уже

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Проблема с кодировкой в JAVA"
Сообщение от Durward emailИскать по авторуВ закладки(ok) on 01-Окт-04, 12:24  (MSK)
>>Привет народ!
>>Ситуация:
>>Java-апплет считывает сроки которые парсит пхп-скрипт.
>>Сам пхп-скрипт берет их из базы, в  которой они лежат в
>>кодироке cp1251.
>>Проблема:
>>Каждый раз нужно делать iconv в php - скрипте в нужную кодировку.
>>
>>Например для винды его делать вообще не нужно.
>>А если тестишь апплет в линухе (собственно где я его и разрабатываю
>>и у меня там стоит локаль koi8r) , то он ерунду
>>какую-то выводит, до тех пор пока не поставишь в парсящем пхп-шнике
>>iconv из cp1251 в koi8r.
>>Но это же не универсально, а нужно чтоб работало везде.
>Дак ты определись сначала с какой кодирвкой ты будешь рабоатат
>и от этого пляши уже


видимо мой  вопрос не совсем понят...
исходные данные у меня в cp1251, а отображать в апплете их нужно в такой кодировке , которая у кдента в локали стоит...
так что определяться динамически каждый раз на месте апплет сам должен...
вот я и спрашиваю как узнать клиентскую кодировку.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Проблема с кодировкой в JAVA"
Сообщение от Lucky emailИскать по авторуВ закладки(??) on 01-Окт-04, 13:14  (MSK)
>>>Привет народ!
>>>Ситуация:
>>>Java-апплет считывает сроки которые парсит пхп-скрипт.
>>>Сам пхп-скрипт берет их из базы, в  которой они лежат в
>>>кодироке cp1251.
>>>Проблема:
>>>Каждый раз нужно делать iconv в php - скрипте в нужную кодировку.
>>>
>>>Например для винды его делать вообще не нужно.
>>>А если тестишь апплет в линухе (собственно где я его и разрабатываю
>>>и у меня там стоит локаль koi8r) , то он ерунду
>>>какую-то выводит, до тех пор пока не поставишь в парсящем пхп-шнике
>>>iconv из cp1251 в koi8r.
>>>Но это же не универсально, а нужно чтоб работало везде.
>>Дак ты определись сначала с какой кодирвкой ты будешь рабоатат
>>и от этого пляши уже
>
>
>видимо мой  вопрос не совсем понят...
>исходные данные у меня в cp1251, а отображать в апплете их нужно
>в такой кодировке , которая у кдента в локали стоит...
>так что определяться динамически каждый раз на месте апплет сам должен...
>вот я и спрашиваю как узнать клиентскую кодировку.

по моему никак.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Проблема с кодировкой в JAVA"
Сообщение от MK emailИскать по авторуВ закладки(??) on 06-Окт-04, 20:56  (MSK)
Java программы используют Unicode для хранения текста и твоя
ошибка возникает в момент автоматического перекодирования
приходящих в апплет данных из однобайтовой кодировки в Unicode.
Апплет не знает какая именно однобайтовая кодировка используется
во входящих данные и считает входящие данные зпкодированными в той
кодировке, которая стоит в настройках локали компа пользователя,
запустившего апплет.
См http://java.mediacomweb.com/article/index.jsp?id=2
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Проблема с кодировкой в JAVA"
Сообщение от Durward emailИскать по авторуВ закладки(ok) on 07-Окт-04, 10:18  (MSK)
>Java программы используют Unicode для хранения текста и твоя
>ошибка возникает в момент автоматического перекодирования
>приходящих в апплет данных из однобайтовой кодировки в Unicode.
>Апплет не знает какая именно однобайтовая кодировка используется
>во входящих данные и считает входящие данные зпкодированными в той
>кодировке, которая стоит в настройках локали компа пользователя,
>запустившего апплет.
>См http://java.mediacomweb.com/article/index.jsp?id=2
Это все мне известно мой друг.
Апплет конечно же не знает какая там кодировка ему приходит, но в апплете я и не перекодировал ничего, а просто парсил то что ему дали.
Собственно перекодировка велась в пхп-шке которая ему подсовывает данные. Вопрос в том как узнать из апплета какая кодировка стоит у клиента в локали,  а подсунуть апплету UTF8 так это без проблем.
Ссылку твою еще не смотрел, но сейчас почитаю, а за ответ и ссылку большое спасибо, надеюсь она мне поможет.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Проблема с кодировкой в JAVA"
Сообщение от MK emailИскать по авторуВ закладки(??) on 07-Окт-04, 10:39  (MSK)
Если тебе в падлу заниматься перекодированием самостоятельно,
а сделать это очень просто и мне кажется так и надо сделать, то
узнать настройки локали можно так:
String encoding=System.getProperty("file.encoding");
В некоторых браузерах настройки безопасности бывают
строже чем надо и может получиться SecurityException
  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Проблема с кодировкой в JAVA"
Сообщение от Durward emailИскать по авторуВ закладки(ok) on 07-Окт-04, 10:48  (MSK)
>Если тебе в падлу заниматься перекодированием самостоятельно,
>а сделать это очень просто и мне кажется так и надо сделать,
>то
>узнать настройки локали можно так:
>String encoding=System.getProperty("file.encoding");
>В некоторых браузерах настройки безопасности бывают
>строже чем надо и может получиться SecurityException
спасибо за совет насчет System.getProperty("file.encoding"), но причем здесь "заниматься перекодированием |||самостоятельно|||" и что эта фраза вообще значит???????????


  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Проблема с кодировкой в JAVA"
Сообщение от MK emailИскать по авторуВ закладки(??) on 07-Окт-04, 11:04  (MSK)
1.Ты знаешь в какой кодировке данные предоставляет сервер (например CP1251)
2.Ты знаешь, что String хранит данные в Unicode
Для того чтобы корректно отобразить текст в апплете тебе надо явно
перекодировать данные из CP1251 в Unicode.
Пример:
BufferedReader in=new BufferedReader(
   new InputStreamReader(твой-InputStream,"CP1251"));
String line=null;
while((line=in.readLine()!=null){
   делай что хочешь с текстом,
   в переменной line хранится строка
   в Unicode
}
in.close();


  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Проблема с кодировкой в JAVA"
Сообщение от Durward emailИскать по авторуВ закладки(ok) on 07-Окт-04, 11:19  (MSK)
>1.Ты знаешь в какой кодировке данные предоставляет сервер (например CP1251)
>2.Ты знаешь, что String хранит данные в Unicode
>Для того чтобы корректно отобразить текст в апплете тебе надо явно
>перекодировать данные из CP1251 в Unicode.
>Пример:
> BufferedReader in=new BufferedReader(
>   new InputStreamReader(твой-InputStream,"CP1251"));
> String line=null;
> while((line=in.readLine()!=null){
>   делай что хочешь с текстом,
>   в переменной line хранится строка
>   в Unicode
> }
> in.close();
>
Я все понял, единственное и самое главное что я извлек из нашей беседы это System.getProperty("file.encoding");
А вещичка и вправду работает, правда на винде еще не тестил...
Надеюсь что исключения по этому поводу будут генериться не так уж часто, а если будут то напишу в окошке мол "Ваш браузер сильно враждебный и не хочет дружить с моим апплетом" :-)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру