На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Перекодировка String-byte-String
    Прошу помощи в решении простой(как мне кажется проблеммы)
    Нужно перекодировать строку Кирилицы в byte и обратно.
    Написал:
    //////////////////////////////////////////////////
    byte abCommarea[] = null;
    String strCommarea2 = "Проба";
    String strEncoding = "1025";
    int iCommareaLength = 27 ;
    abCommarea = new byte[iCommareaLength];
    abCommarea = strCommarea2.getBytes(strEncoding);
    String strCommarea2 = new String(abCommarea, strEncoding);
    //////////////////////////////////////////////////////
    в результате получаю изуродованную строку:
    "ЂЂЂЂЂ"
    Как получить свои буковки назад в целости?
    Заранее благодарен.
        Кодировки - вещь скользкая, но, например, вот так у меня все работает:


         String str = new String("Проба");
       
        try {
             byte [] b = str.getBytes("UTF-8");
             String str1 = new String(b, "UTF-8");
             jTextArea1.setText(str + "{}" + str1);
         } catch(java.io.UnsupportedEncodingException excpt) {
             
         }

         В JTextArea имеем:  
       
         Проба{}Проба
         
         В консоль, кстати, выводит :

         ?????{}?????

          System.out подвел :D
      Сообщение отредактировано: tatar_0x4E -
        Кстати, а при чем здесь 1025 ???

        Читаем:

                 Encoding names generally follow the conventions documented in RFC2278: IANA Charset Registration Procedures. If an encoding listed in the IANA Charset Registry is supported by an implementation of the Java platform then one of its names must be the name listed in the registry. Many encodings are given more than one name in the registry, in which case the registry identifies one of the names as MIME-preferred. An implementation of the Java platform must support the MIME-preferred registry name for a supported encoding if there is one; for convenience it may additionally support other registry names. The IANA MIME-preferred name of an encoding, if there is one, is often, but not necessarily, its canonical name. Following IANA convention, the mapping from IANA registry names to encodings is not case-sensitive.

                 Every implementation of the Java platform is required to support the following character encodings. Consult the release documentation for your implementation to see if any other encodings are supported.

        US-ASCIISeven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character setISO-8859-1  

        ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1

        UTF-8Eight-bit Unicode Transformation Format

        UTF-16BESixteen-bit Unicode Transformation Format, big-endian byte order

        UTF-16LESixteen-bit Unicode Transformation Format, little-endian byte order

        UTF-16Sixteen-bit Unicode Transformation Format, byte order specified by a mandatory initial byte-order mark (either order accepted on input, big-endian used on output)

        Хм, хм...
          [QUOTE=tatar_0x4E, 29.05.02, 12:58:20]Кстати, а при чем здесь 1025 ???

          >Читаем:


          >          Every implementation of the Java platform is required to support the following >character encodings. Consult the release documentation for your implementation to see if >any other encodings are supported.

          Следуя этой здравой рекомендации находим:
          ┌────────────────────────────────────────────────────────────────────┐
          │ Table 6. Cyrillic, EBCDIC                                                                                          │
          ├─────────┬──────────┬─────────┬─────────────────────────────────────┤
          │ SRVERCP    │ CCSID         │ CPGID        │                                            
          ├─────────┼──────────┼─────────┼─────────────────────────────────────┤
          │ 1025         │ 01025          │ 01025        │ Host: Cyrillic multilingual                                 │
          └─────────┴──────────┴─────────┴────────────────────────────    ──────┘
          :)
          Спасибо за помощь.
            [QUOTE=tatar_0x4E, 29.05.02, 12:58:20]Кстати, а при чем здесь 1025 ???

            >Читаем:


            >          Every implementation of the Java platform is required to support the following >character encodings. Consult the release documentation for your implementation to see if >any other encodings are supported.

            Следуя этой здравой рекомендации находим:
            ......
            Н да процитировать доку не удалось, опять кодировка:)
            Короче 1025 это Cyrillic,EBCDIC                                                                                          
            :)
            Спасибо за помощь.
              Цитата Ezdon, 30.05.02, 13:23:33
              Кстати, а при чем здесь 1025 ???

              >Читаем:


              >          Every implementation of the Java platform is required to support the following >character encodings. Consult the release documentation for your implementation to see if >any other encodings are supported.

              Следуя этой здравой рекомендации находим:
              ......
              Н да процитировать доку не удалось, опять кодировка:)
              Короче 1025 это Cyrillic,EBCDIC                                                                                          
              :)
              Спасибо за помощь.


              Это я догадался, просто был не уверен что стандартное написание именно 1025, обычно там присутствуют буквенные обозначения :) Впрочем, я так понимаю, ты пишешь для какого-нибудь AIX, так что все может быть :)

              Насчет помощи - you are welcom :)
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0219 ]   [ 15 queries used ]   [ Generated: 28.04.24, 17:15 GMT ]