Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Из char[] в String / 10 сообщений из 10, страница 1 из 1
10.04.2008, 10:47
    #35247355
Tsahes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из char[] в String
Я получил некоторую строку. Представление этой строки в виде массива char выглядит так:
Код: plaintext
 char [] chars =  new   char [] {  204 ,  238 ,  241 ,  234 ,  226 ,  224  };
Я знаю, что строка состоит из русских букв, первая буква "М".

Я действительно в затруднении. Подскажите, как переконвертировать строку в cp1251?
...
Рейтинг: 0 / 0
10.04.2008, 10:57
    #35247387
Из char[] в String
TsahesЯ получил некоторую строку. Представление этой строки в виде массива char выглядит так:
Код: plaintext
 char [] chars =  new   char [] {  204 ,  238 ,  241 ,  234 ,  226 ,  224  };
Я знаю, что строка состоит из русских букв, первая буква "М".

Я действительно в затруднении. Подскажите, как переконвертировать строку в cp1251?

а вы можете получить её в виде массива байтов? Потому что именно таков правильный способ:
http://java.sun.com/javase/6/docs/api/java/lang/String.html#String(byte[],%20java.lang.String)
...
Рейтинг: 0 / 0
10.04.2008, 11:09
    #35247437
Tsahes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из char[] в String
Байтовое представление этой же строки:
Код: plaintext
 byte [] bytes = str.getBytes("cp1251");
Код: plaintext
 byte [] bytes =  new   byte [] { 63 ,  63 ,  63 ,  63 ,  63 };
...
Рейтинг: 0 / 0
10.04.2008, 11:14
    #35247456
VoDA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из char[] в String
Код: plaintext
 char [] chars =  new   char [] {  204 ,  238 ,  241 ,  234 ,  226 ,  224  };
Эта беда в какой кодировке ?
...
Рейтинг: 0 / 0
10.04.2008, 11:22
    #35247497
Из char[] в String
TsahesЯ получил некоторую строку. Представление этой строки в виде массива char выглядит так:

уточните начальные условия. Что именно вы получили? массив чаров или строку или массив байтов или... Также будет полезно узнать, откуда и каким образом получили.
...
Рейтинг: 0 / 0
10.04.2008, 11:51
    #35247625
Tsahes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из char[] в String
Строка str получена от клиента после вызова метода JNI. Клиент утверждает, что отправлял в содировке win1251. Возможно, неверно выполнено преобразование в реализации jni метода.
Тем не менее, я получил строку и вывел в лог байтовое и чаровское представление строки. Текущая кодировка java - cp1251.
...
Рейтинг: 0 / 0
10.04.2008, 12:50
    #35247927
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из char[] в String
TsahesСтрока str получена от клиента после вызова метода JNI. Клиент утверждает, что отправлял в содировке win1251. Возможно, неверно выполнено преобразование в реализации jni метода.
Тем не менее, я получил строку и вывел в лог байтовое и чаровское представление строки. Текущая кодировка java - cp1251.

Ну и чего тебе не нравится ? 63 == 'М'
...
Рейтинг: 0 / 0
10.04.2008, 13:08
    #35248005
Из char[] в String
NotGonnaGetUsНу и чего тебе не нравится ? 63 == 'М'
вообще-то 63 = '?'

Tsahes , на клиента повлиять нельзя? или JNI починить?
http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jnistring.html#string
авторThe String object in the Java language, which is represented as jstring in Java Native Interface (JNI), is a 16 bit unicode string. In C a string is by default constructed from 8 bit characters

The example below converts the lastfile[80] C character array to a jstring, which is returned to the calling Java language method:

Код: plaintext
1.
2.
3.
4.
5.
6.
  static char lastfile[ 80 ];

  JNIEXPORT jstring JNICALL Java_ReadFile_lastFile
    (JNIEnv *env, jobject jobj) {
     return((*env)->NewStringUTF(env, lastfile));
  }


P.S. можете почитать http://www.citforum.ru/internet/javascript/java_rbint.shtml - последний пункт "О методе перекодировки символов", но мне кажется, что до такого лучше не доводить, починив JNI кусок
...
Рейтинг: 0 / 0
10.04.2008, 13:38
    #35248142
Tsahes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из char[] в String
Ааа! Спасибо )!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 public   class  TestEncoding {

     public   static   void  main(String[] args)
         throws  Exception {

         char [] chars =  new   char [] {  204 ,  238 ,  241 ,  234 ,  226 ,  224  };
        String str =  new  String(chars);
        System.out.println(str);

        String enc =  new  String(str.getBytes("ISO-8859-1"), "cp1251");
        System.out.println(enc);
    }
}

Код: plaintext
1.
??????
Москва
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.11.2018, 16:49
    #39728685
skibidi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из char[] в String
На Линуксе, допустим, коды символов отличаются от кодов на Виндоус. Лучше перепроверить через вывод что конкретно значит код.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Из char[] в String / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]