powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Encoding
12 сообщений из 12, страница 1 из 1
Encoding
    #34607613
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть класс. Запускаю его вот так:
%JAVA_HOME%\bin\java.exe -showversion CSmallCmpCompiler .\official\dsrc\text\russian\txt .\text\russian

Он берет все текстовые файлики из \official\dsrc\text\russian\txt по определенному алгоритму обрабатывает их и выплевывает в .\text\russian. Выплевывает их в кодировке ANSI, а мне нужно UTF8.

Подскажите плиз, где мне задать кодировку и как лучше сделать. Вот исходник:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
 import  java.io.*;

 public   class  CSmallCmpCompiler
{

     public  CSmallCmpCompiler()
    {
    }

     public   static   void  main(String args[])
         throws  IOException
    {
        String s = args[ 0 ];
        String s1 = args[ 1 ];
        File file =  new  File(s1 + "\\CSmallCmpCompiler.log");
        FileOutputStream fileoutputstream =  new  FileOutputStream(file);
        PrintStream printstream =  new  PrintStream(fileoutputstream);
        File file1 =  new  File(s);
         if (!file1.exists() || !file1.isDirectory())
        {
            printstream.println("*****  " + s + "  does not exist or is not a dyrectory.  ");
             return ;
        }
        File file2 =  new  File(s);
         if (!file2.exists() || !file2.isDirectory())
        {
            printstream.println("*****  " + s1 + "  does not exist or is not a dyrectory.  ");
             return ;
        }
        OnlyExt onlyext =  new  OnlyExt("txt");
        String args1[] = file1.list(onlyext);
        printstream.println("\u041Fр\u043Eгра\u043C\u043Cа \u043A\u043E\u043C\u043Fи" +
"\u043B\u044Fции \u043Cе\u043B\u043Aий cmp-фа" +
"й\u043B\u043Eв из \u043Fа\u043F\u043Aи "
 + s);
        printstream.println("Резу\u043B\u044Cтат в " + s1);
        printstream.println(s + "  ---  " + args1.length + "  фай\u043B\u043Eв");
        CSmallCmpCompiler1 csmallcmpcompiler1 =  new  CSmallCmpCompiler1();
         for ( int  i =  0 ; i < args1.length; i++)
        {
             if ((i /  5 ) *  5  == i && i >=  1 )
            {
                System.out.println(i + "  files are compiled  (" + ( 100  * i) / args1.length + " %).");
            }
            String s2 = s + "\\" + args1[i];
            String s3 = s1 + "\\" + args1[i];
            int j = s3.lastIndexOf("txt");
            if(j != 0)
            {
                String s4 = s3.substring(0, j);
                String s5 = s4 + "cmp";
                csmallcmpcompiler1.compile(s2, s5, printstream);
            }
        }

        printstream.println(" \u041Eбраб\u043Eта\u043D\u043E " + csmallcmpcompiler1.donefilecount + "  фай\u043B\u043Eв");
        System.out.println();
        printstream.close();
    }
}
...
Рейтинг: 0 / 0
Encoding
    #34607766
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
 new  PrintStream(fileoutputstream, true, "UTF8");
...
Рейтинг: 0 / 0
Encoding
    #34607784
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёще лучше
Код: plaintext
 new  PrintStream( new  BufferedOutputStream(fileoutputstream, true, "UTF8"));
...
Рейтинг: 0 / 0
Encoding
    #34607791
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробовал! не заработало
...
Рейтинг: 0 / 0
Encoding
    #34607807
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а второй вариант не компелируется
...
Рейтинг: 0 / 0
Encoding
    #34607826
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D:\work\SKELET_TRANSLATION>javac CSmallCmpCompiler.java
CSmallCmpCompiler.java:20: cannot resolve symbol
symbol : constructor BufferedOutputStream (java.io.FileOutputStream,boolean,java.lang.String)
location: class java.io.BufferedOutputStream
PrintStream printstream = new PrintStream(new BufferedOutputStream(fileoutputstream, true, "UTF8"));
^
1 error

заменил
PrintStream printstream = new PrintStream(fileoutputstream);
на
PrintStream printstream = new PrintStream(new BufferedOutputStream(fileoutputstream, true, "UTF8"));
...
Рейтинг: 0 / 0
Encoding
    #34607845
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrei77а второй вариант не компелируется
версия JDK какая?
...
Рейтинг: 0 / 0
Encoding
    #34607854
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.4.2
...
Рейтинг: 0 / 0
Encoding
    #34607865
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри
PrintStream printstream = new PrintStream(new BufferedOutputStream(fileoutputstream), true, "UTF8");
так должно работать полюбому :)
...
Рейтинг: 0 / 0
Encoding
    #34607891
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин все равно он её в ANSI сохраняет...
я написал вот такую штуку...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 import  java.io.*;

 public   class  XmlEncoding {
     public   static   void  main(String[] args)  throws  IOException {
         FileInputStream in =  new  FileInputStream("D:\\ptc\\proeWildfire4.0\\text\\russian\\favorites.cmp");
         InputStreamReader isr =  new  InputStreamReader(in, "cp1251");
         FileOutputStream fos =  new  FileOutputStream("D:\\ptc\\proeWildfire4.0\\text\\russian\\favorites_.cmp");
         Writer out =  new  OutputStreamWriter(fos, "UTF8"); 

         int  c;

         while  ((c = isr.read()) != - 1 )
           
              out.write(c);
              
            isr.close();
            out.close();
           in.close();
          fos.close();       
        
    }
}

работает

но мне нужно чтобы там сработало...
в статье Русские буквы Java и не только написано:
авторТак как метода установки кодировки в PrintStream нет... это поэтому ты спросил про версию java?
...
Рейтинг: 0 / 0
Encoding
    #34607928
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrei77
в статье Русские буквы Java и не только написано:
авторТак как метода установки кодировки в PrintStream нет... это поэтому ты спросил про версию java?
тогда что это?
...
Рейтинг: 0 / 0
Encoding
    #34607944
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видел
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Encoding
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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