Кодировка cp866

 
 
 
Сообщения:29
Такая вот строка:

string.getBytes("cp866");


выкидывает "UnsupportedEncodingException: Cp866 "
В чем проблема? Использую JDK 1.5.

P.S.
читал http://www.jug.ru/servlets/index?page=rus

код из статьи:

String string = "Русский текст";

// Записываем строку в текстовый файл в кодировке Cp866

PrintWriter pw = new PrintWriter   // класс с методами записи строк
(new OutputStreamWriter          // класс-преобразователь
(new FileOutputStream         // класс записи байтов в файл
("D:\\file.txt"), "Cp866"));

pw.println(string);  // записываем строку в файл
pw.close();


кидает то же исключение
 
 
Сообщения:3874
1. У меня "CP866" работала (именно большими буквами)
2. Как вариант - проверте все ли буквы написаны латиницей.
 
 
Сообщения:29
gesser:
1. У меня "CP866" работала (именно большими буквами)
2. Как вариант - проверте все ли буквы написаны латиницей.


я уже всяко писал: Cp866, CP866, IBM866 - все равно дос не поддерживает - "UnsupportedEncodingException: Cp866 "
 
 
Сообщения:3874
Давайте подойдем у этому вопросу подругому - где вы используете эту кодировку? Какое это приложение - десктоп, веб приложение? Дайте код.
 
 
Сообщения:29
Приложение читает DBF-файл и сохраняет данные в таблицу.
Не суть важно - DBF или обычный текстовый файл, но прочитать его в cp866 не получается.
Где-то читал, что в MS JVM отсутствуют все русские кодировки кроме cp1251, но у меня то "родная" от Sun, версия 1.5.

Например такой код (читаем данные из текстового файла):

InputStreamReader fileInput = new InputStreamReader(new FileInputStream("file.txt"), "Cp866");


кидает все тот же "UnsupportedEncodingException: Cp866"
 
 
Сообщения:3874
Запустите следующий код. Он покажет какие кодировки установлены у вас, и поддерживается ли кодировка cp866. Потом будем думать дальше.

//package ru.javatalks.test.system;

import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.SortedMap;

public class TestCp866Encoding {

    public static void main(String[] args) {
        
        try {
            SortedMap<String,Charset> registeredCharsets = Charset.availableCharsets();
            for ( Iterator<Charset> charsets = registeredCharsets.values().iterator(); charsets.hasNext(); ) {
                Charset charset = charsets.next(); 
                // Display name
                System.out.print(charset.name() + " Aliases: [");
                // Display aliases
                for ( Iterator<String> aliases = charset.aliases().iterator(); aliases.hasNext(); ) { 
                    System.out.print(aliases.next());
                    if ( aliases.hasNext() ) System.out.print(", ");
                }
                System.out.println("]");
            }
                
            
            System.out.println("\nIs cp866 supported? - " + Charset.isSupported("cp866")); // testing aliase
            System.out.println("Is IBM866 supported? - " + Charset.isSupported("IBM866"));
        } catch ( Exception ex ) {
            ex.printStackTrace();
        }
    }

}


Мой результат:
(запущенно на
java version "1.5.0_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)
Java HotSpot(TM) Client VM (build 1.5.0_09-b03, mixed mode, sharing))

Quote:
Big5 Aliases: [csBig5]
Big5-HKSCS Aliases: [big5-hkscs, big5hk, big5-hkscs:unicode3.0, big5hkscs, Big5_HKSCS]
EUC-JP Aliases: [eucjis, x-eucjp, csEUCPkdFmtjapanese, eucjp, Extended_UNIX_Code_Packed_Format_for_Japanese, x-euc-jp, euc_jp]
EUC-KR Aliases: [ksc5601, 5601, ksc5601_1987, ksc_5601, ksc5601-1987, euc_kr, ks_c_5601-1987, euckr, csEUCKR]
GB18030 Aliases: [gb18030-2000]
GB2312 Aliases: [gb2312-1980, gb2312, EUC_CN, gb2312-80, euc-cn, euccn, x-EUC-CN]
GBK Aliases: [windows-936, CP936]
IBM-Thai Aliases: [ibm-838, ibm838, 838, cp838]
IBM00858 Aliases: [cp858, ccsid00858, cp00858, 858]
IBM01140 Aliases: [1140, ccsid01140, cp01140, cp1140]
IBM01141 Aliases: [cp01141, cp1141, ccsid01141, 1141]
IBM01142 Aliases: [cp01142, cp1142, ccsid01142, 1142]
IBM01143 Aliases: [1143, cp01143, cp1143, ccsid01143]
IBM01144 Aliases: [cp01144, cp1144, 1144, ccsid01144]
IBM01145 Aliases: [ccsid01145, cp01145, 1145, cp1145]
IBM01146 Aliases: [ccsid01146, cp1146, 1146, cp01146]
IBM01147 Aliases: [cp1147, 1147, ccsid01147, cp01147]
IBM01148 Aliases: [cp01148, cp1148, ccsid01148, 1148]
IBM01149 Aliases: [cp1149, ccsid01149, 1149, cp01149]
IBM037 Aliases: [csIBM037, cpibm37, cp037, cs-ebcdic-cp-us, ibm-037, ibm-37, cs-ebcdic-cp-ca, cs-ebcdic-cp-wt, cs-ebcdic-cp-nl, ibm037, 037]
IBM1026 Aliases: [1026, ibm1026, cp1026, ibm-1026]
IBM1047 Aliases: [1047, ibm-1047, cp1047]
IBM273 Aliases: [ibm273, 273, cp273, ibm-273]
IBM277 Aliases: [ibm277, cp277, ibm-277, 277]
IBM278 Aliases: [csIBM278, ibm278, cp278, ebcdic-cp-se, 278, ibm-278, ebcdic-sv]
IBM280 Aliases: [ibm280, cp280, 280, ibm-280]
IBM284 Aliases: [cpibm284, csIBM284, ibm-284, ibm284, 284, cp284]
IBM285 Aliases: [285, ebcdic-cp-gb, ibm-285, csIBM285, cp285, ibm285, cpibm285, ebcdic-gb]
IBM297 Aliases: [csIBM297, ebcdic-cp-fr, cp297, ibm297, ibm-297, 297, cpibm297]
IBM420 Aliases: [ibm420, 420, ebcdic-cp-ar1, csIBM420, ibm-420, cp420]
IBM424 Aliases: [cp424, 424, ebcdic-cp-he, ibm424, csIBM424, ibm-424]
IBM437 Aliases: [windows-437, cspc8codepage437, ibm437, cp437, 437, ibm-437]
IBM500 Aliases: [500, ebcdic-cp-ch, ebcdic-cp-bh, ibm-500, csIBM500, cp500, ibm500]
IBM775 Aliases: [ibm775, cp775, ibm-775, 775]
IBM850 Aliases: [ibm-850, 850, ibm850, cspc850multilingual, cp850]
IBM852 Aliases: [852, ibm-852, csPCp852, cp852, ibm852]
IBM855 Aliases: [855, ibm855, cp855, cspcp855, ibm-855]
IBM857 Aliases: [cp857, ibm857, csIBM857, 857, ibm-857]
IBM860 Aliases: [ibm860, ibm-860, csIBM860, cp860, 860]
IBM861 Aliases: [csIBM861, ibm861, 861, cp861, ibm-861]
IBM862 Aliases: [cp862, ibm862, 862, ibm-862, csIBM862]
IBM863 Aliases: [cp863, csIBM863, ibm863, 863, ibm-863]
IBM864 Aliases: [csIBM864, ibm-864, 864, ibm864, cp864]
IBM865 Aliases: [ibm-865, csIBM865, 865, ibm865, cp865]
IBM866 Aliases: [866, ibm-866, csIBM866, ibm866, cp866]
IBM868 Aliases: [cp-ar, 868, ibm868, csIBM868, ibm-868, cp868]
IBM869 Aliases: [ibm869, ibm-869, 869, cp869, csIBM869, cp-gr]
IBM870 Aliases: [ebcdic-cp-yu, ibm870, ibm-870, 870, csIBM870, cp870, ebcdic-cp-roece]
IBM871 Aliases: [csIBM871, ibm-871, cp871, ebcdic-cp-is, 871, ibm871]
IBM918 Aliases: [ibm-918, 918, cp918, ebcdic-cp-ar2]
ISO-2022-CN Aliases: [csISO2022CN, ISO2022CN]
ISO-2022-JP Aliases: [jis, jis_encoding, csjisencoding, csISO2022JP, iso2022jp]
ISO-2022-KR Aliases: [ISO2022KR, csISO2022KR]
ISO-8859-1 Aliases: [iso-ir-100, 8859_1, ISO_8859-1, ISO8859_1, 819, csISOLatin1, IBM-819, ISO_8859-1:1987, latin1, cp819, ISO8859-1, IBM819, ISO_8859_1, l1]
ISO-8859-13 Aliases: [ISO8859-13, 8859_13, iso8859_13, iso_8859-13]
ISO-8859-15 Aliases: [8859_15, csISOlatin9, IBM923, cp923, 923, L9, IBM-923, ISO8859-15, LATIN9, ISO_8859-15, LATIN0, csISOlatin0, ISO8859_15_FDIS, ISO-8859-15, ISO8859_15]
ISO-8859-2 Aliases: [ibm912, l2, ibm-912, cp912, ISO_8859-2:1987, ISO_8859-2, latin2, csISOLatin2, iso8859_2, 912, 8859_2, ISO8859-2, iso-ir-101]
ISO-8859-3 Aliases: [iso8859_3, cp913, csISOLatin3, ibm-913, ISO_8859-3, 913, ISO8859-3, 8859_3, ibm913, iso-ir-109, ISO_8859-3:1988, latin3, l3]
ISO-8859-4 Aliases: [iso-ir-110, l4, 8859_4, ibm914, latin4, ibm-914, csISOLatin4, iso8859_4, iso8859-4, cp914, 914, ISO_8859-4:1988, ISO_8859-4]
ISO-8859-5 Aliases: [915, ISO_8859-5:1988, iso8859_5, cp915, ibm915, ISO_8859-5, ISO8859-5, csISOLatinCyrillic, cyrillic, 8859_5, iso-ir-144, ibm-915]
ISO-8859-6 Aliases: [8859_6, arabic, ibm-1089, iso8859_6, ISO_8859-6, iso-ir-127, ibm1089, ISO_8859-6:1987, ECMA-114, 1089, csISOLatinArabic, ISO8859-6, ASMO-708, cp1089]
ISO-8859-7 Aliases: [sun_eu_greek, 8859_7, iso-ir-126, ISO_8859-7:1987, ibm-813, iso8859_7, ISO_8859-7, csISOLatinGreek, greek8, ECMA-118, ibm813, ELOT_928, iso8859-7, cp813, greek, 813]
ISO-8859-8 Aliases: [iso-ir-138, ibm-916, iso8859_8, cp916, ISO8859-8, ISO_8859-8:1988, hebrew, 8859_8, csISOLatinHebrew, ibm916, 916, ISO_8859-8]
ISO-8859-9 Aliases: [cp920, l5, ISO_8859-9, ibm-920, csISOLatin5, 8859_9, iso-ir-148, latin5, 920, ISO8859-9, ibm920, ISO_8859-9:1989, iso8859_9]
JIS_X0201 Aliases: [JIS_X0201, X0201, JIS0201, csHalfWidthKatakana]
JIS_X0212-1990 Aliases: [jis_x0212-1990, iso-ir-159, x0212, JIS0212, csISO159JISX02121990]
KOI8-R Aliases: [koi8, koi8_r, cskoi8r]
Shift_JIS Aliases: [shift-jis, shift_jis, x-sjis, ms_kanji, csShiftJIS, sjis]
TIS-620 Aliases: [tis620.2533, tis620]
US-ASCII Aliases: [ISO646-US, IBM367, ASCII, cp367, default, ascii7, ANSI_X3.4-1986, iso-ir-6, us, 646, iso_646.irv:1983, csASCII, ANSI_X3.4-1968, ISO_646.irv:1991]
UTF-16 Aliases: [utf16, UTF_16]
UTF-16BE Aliases: [X-UTF-16BE, UnicodeBigUnmarked, UTF_16BE, ISO-10646-UCS-2]
UTF-16LE Aliases: [UnicodeLittleUnmarked, X-UTF-16LE, UTF_16LE]
UTF-8 Aliases: [UTF8, unicode-1-1-utf-8]
windows-1250 Aliases: [cp1250, cp5346]
windows-1251 Aliases: [ansi-1251, cp1251, cp5347]
windows-1252 Aliases: [cp1252, cp5348]
windows-1253 Aliases: [cp1253, cp5349]
windows-1254 Aliases: [cp5350, cp1254]
windows-1255 Aliases: [cp1255]
windows-1256 Aliases: [cp1256]
windows-1257 Aliases: [cp1257, cp5353]
windows-1258 Aliases: [cp1258]
windows-31j Aliases: [csWindows31J, windows-932, MS932]
x-Big5-Solaris Aliases: [Big5_Solaris]
x-euc-jp-linux Aliases: [euc_jp_linux, euc-jp-linux]
x-EUC-TW Aliases: [cns11643, euc_tw, EUC-TW, euctw]
x-eucJP-Open Aliases: [EUC_JP_Solaris, eucJP-open]
x-IBM1006 Aliases: [cp1006, ibm1006, 1006, ibm-1006]
x-IBM1025 Aliases: [ibm1025, 1025, cp1025, ibm-1025]
x-IBM1046 Aliases: [ibm1046, 1046, cp1046, ibm-1046]
x-IBM1097 Aliases: [ibm1097, 1097, cp1097, ibm-1097]
x-IBM1098 Aliases: [cp1098, ibm-1098, ibm1098, 1098]
x-IBM1112 Aliases: [cp1112, 1112, ibm1112, ibm-1112]
x-IBM1122 Aliases: [ibm-1122, 1122, cp1122, ibm1122]
x-IBM1123 Aliases: [cp1123, ibm1123, ibm-1123, 1123]
x-IBM1124 Aliases: [cp1124, ibm1124, ibm-1124, 1124]
x-IBM1381 Aliases: [1381, cp1381, ibm1381, ibm-1381]
x-IBM1383 Aliases: [ibm1383, ibm-1383, cp1383, 1383]
x-IBM33722 Aliases: [ibm-33722, cp33722, ibm-33722_vascii_vpua, ibm-5050, ibm33722, 33722]
x-IBM737 Aliases: [ibm-737, ibm737, cp737, 737]
x-IBM856 Aliases: [ibm-856, 856, ibm856, cp856]
x-IBM874 Aliases: [cp874, ibm874, ibm-874, 874]
x-IBM875 Aliases: [ibm875, ibm-875, 875, cp875]
x-IBM921 Aliases: [921, cp921, ibm921, ibm-921]
x-IBM922 Aliases: [cp922, ibm922, ibm-922, 922]
x-IBM930 Aliases: [cp930, 930, ibm930, ibm-930]
x-IBM933 Aliases: [ibm933, cp933, 933, ibm-933]
x-IBM935 Aliases: [935, cp935, ibm935, ibm-935]
x-IBM937 Aliases: [cp937, ibm-937, ibm937, 937]
x-IBM939 Aliases: [ibm-939, ibm939, cp939, 939]
x-IBM942 Aliases: [cp942, ibm942, ibm-942, 942]
x-IBM942C Aliases: [ibm942C, cp942C, ibm-942C, 942C]
x-IBM943 Aliases: [ibm943, ibm-943, cp943, 943]
x-IBM943C Aliases: [ibm-943C, ibm943C, 943C, cp943C]
x-IBM948 Aliases: [948, ibm-948, cp948, ibm948]
x-IBM949 Aliases: [ibm-949, cp949, 949, ibm949]
x-IBM949C Aliases: [cp949C, 949C, ibm949C, ibm-949C]
x-IBM950 Aliases: [950, cp950, ibm-950, ibm950]
x-IBM964 Aliases: [964, cp964, ibm-964, ibm964]
x-IBM970 Aliases: [ibm970, 970, cp970, ibm-eucKR, ibm-970]
x-ISCII91 Aliases: [iscii, ST_SEV_358-88, iso-ir-153, csISO153GOST1976874, ISCII91]
x-ISO-2022-CN-CNS Aliases: [ISO2022CN_CNS, ISO-2022-CN-CNS]
x-ISO-2022-CN-GB Aliases: [ISO-2022-CN-GB, ISO2022CN_GB]
x-iso-8859-11 Aliases: [iso-8859-11, iso8859_11]
x-JIS0208 Aliases: [JIS0208, csISO87JISX0208, x0208, JIS_C6226-1983, JIS_X0208-1983, iso-ir-87]
x-JISAutoDetect Aliases: [JISAutoDetect]
x-Johab Aliases: [johab, ms1361, ksc5601-1992, ksc5601_1992]
x-MacArabic Aliases: [MacArabic]
x-MacCentralEurope Aliases: [MacCentralEurope]
x-MacCroatian Aliases: [MacCroatian]
x-MacCyrillic Aliases: [MacCyrillic]
x-MacDingbat Aliases: [MacDingbat]
x-MacGreek Aliases: [MacGreek]
x-MacHebrew Aliases: [MacHebrew]
x-MacIceland Aliases: [MacIceland]
x-MacRoman Aliases: [MacRoman]
x-MacRomania Aliases: [MacRomania]
x-MacSymbol Aliases: [MacSymbol]
x-MacThai Aliases: [MacThai]
x-MacTurkish Aliases: [MacTurkish]
x-MacUkraine Aliases: [MacUkraine]
x-MS950-HKSCS Aliases: [MS950_HKSCS]
x-mswin-936 Aliases: [ms936, ms_936]
x-PCK Aliases: [pck]
x-windows-874 Aliases: [windows-874, ms874, ms-874]
x-windows-949 Aliases: [windows949, ms_949, ms949]
x-windows-950 Aliases: [windows-950, ms950]

Is cp866 supported? - true
Is IBM866 supported? - true
 
 
Сообщения:29
Привет. Огромный тебе респект!
Вот в чем оказалось дело:
после запуска кода оказалось, что данная кодировка ср866 поддерживается JVM, которая идет вместе с дистрибутивом J2EE. Тогда я проверил, какая JVM указана у TomCata - оказывается там была указана JVM, которая шла с JRE 1.5, и вот именно эта машина кодировку cp866 (и кучу других) не поддерживала!

Сейчас данные в DOS-кодировке нормально импортируются из DBF, сейчас буду отлаживать код, что еще экпортировалось все нормально.
Еще раз спасибо.
 
 
Сообщения:3874
Отлично. Поэтому я и просил код :)
 
Модераторы:frymock
Сейчас эту тему просматривают:Нет