powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / И сноваКирелические символы в именах файлов на FreeBSD
44 сообщений из 44, показаны все 2 страниц
И сноваКирелические символы в именах файлов на FreeBSD
    #38436083
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знаю может показаться репостом, но секундочку внимания. Ситуация следующая:
Есть вышеупомянутый FreeBSD на нем есть Samba. Пользователи (враги народа) в специальные папочки для передачи на филиалы выкладывают файлы (ну конечно же с русскими именами). Моя софтина должна эти файлы вычитать и передать. Проблема заключается в следующем так как файлы создаются под виндой да еще и с кириллическими символами JAVA имеет ряд проблем с чтением их имен. Посоветуйте как решить эту проблему (расстрел врагов народа не предлагать)
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436089
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты админ на FreeBSD/Samba?
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436111
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
несовсем
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436120
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно было-бы зайти в папку где Samba хранит файлы и дать команду ls с враппингом
чтобы посмотреть факт того что русские буквы вообще сохранились. Собсно вопрос даже
не по Java а скорее по настройкам кодовых страниц сервера или протоколов. Да и его
можно-б в форум по Юниксу бросить. Там ответят быстрее.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436131
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonИнтересно было-бы зайти в папку где Samba хранит файлы и дать команду ls с враппингом
чтобы посмотреть факт того что русские буквы вообще сохранились. Собсно вопрос даже
не по Java а скорее по настройкам кодовых страниц сервера или протоколов. Да и его
можно-б в форум по Юниксу бросить. Там ответят быстрее.

Спасибо попробую. Но если кто сталкивался прошу не стеснятся
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436362
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Покажите пример имени файла (как его прочитала java).
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436418
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avp.mkПокажите пример имени файла (как его прочитала java).
обычно вместо кириллических символов "?" к примеру Тест.txt будит ????.txt соответственно такого файла найти не может.При этом имена файлов в терминале отображаются правильно. Пробовал выставить локаль UTF-8. Не помогло даже в терминале файлы принятые самбой начали отображаться кадратиками
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436455
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Dfile.encoding=UTF-8
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436519
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz-Dfile.encoding=UTF-8 насколько я понял принцип работы я должен зпусти ть свой джар вот так ?
java -Dfile.encoding=UTF-8 -jar ServerCopy.jar
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436521
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apprentice-noviceBlazkowicz-Dfile.encoding=UTF-8 насколько я понял принцип работы я должен зпусти ть свой джар вот так ?
java -Dfile.encoding=UTF-8 -jar ServerCopy.jar
Да.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436878
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я полистал исходники JDK 1.6.0, там в конструкторах File, RandomAccessFile, FileInputStream
вроде-бы нет зависимости от свойства "file.encoding".
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38436922
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каких ещё нафиг конструкторах??
Смотри
UnixFileSystem_md.c
io_util.h
jni_util.c
Там нашлось ещё другое свойство, по которому нагуглилось статья:

http://happygiraffe.net/blog/2009/09/24/java-platform-encoding/
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437000
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп-стоп. С чего это ты решил что автор запускает своё приложение на сервере?
Я думаю что он ломитсья с такого-же виндозного клиента.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437026
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСтоп-стоп. С чего это ты решил что автор запускает своё приложение на сервере?
Я думаю что он ломитсья с такого-же виндозного клиента.
Хрен его знает. Автор не объяснил нормально. Но вот из этого...
apprentice-novice Проблема заключается в следующем так как файлы создаются под виндой да еще и с кириллическими символами JAVA имеет ряд проблем с чтением их имен.
...следует что виндоуз создаёт файлы, а Java их читает.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437148
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apprentice-novice, скажи пожалуйста ты доступаешся к файлам локально или через сеть (Samba/Cifs) ?
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437238
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonapprentice-novice, скажи пожалуйста ты доступаешся к файлам локально или через сеть (Samba/Cifs) ?
Локально. Прога запускается на сервере.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437286
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz-Dfile.encoding=UTF-8\
Попробовал перебрал все возможные кириллические кодировки всегда кириллические именна ??????.xls.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437289
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apprentice-novicemaytonapprentice-novice, скажи пожалуйста ты доступаешся к файлам локально или через сеть (Samba/Cifs) ?
Локально. Прога запускается на сервере.
Попробуй 2 cases:
1) Создай (только средствами Java) на сервере файл "Текст.txt". Посмотри как выглядит имя со стороны консоли.
2) Создай такой же файл со стороны пользователя Samba сервера.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437316
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonapprentice-noviceпропущено...

Локально. Прога запускается на сервере.
Попробуй 2 cases:
1) Создай (только средствами Java) на сервере файл "Текст.txt". Посмотри как выглядит имя со стороны консоли.
2) Создай такой же файл со стороны пользователя Samba сервера.
с консоли также ?????.txt
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437338
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
даже не обманул просто разные иероглифы. Но они разные
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437344
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apprentice-noviceдаже не обманул просто разные иероглифы. Но они разные
Уже теплее. Выкладывай сюда "иероглифы"
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437345
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что значит "со стороны консоли"? Когда в терминале выполняете ls, там нормальные имена?
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437352
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверил локаль на сервере стоит локаль UTF-8 запустил Putti с Utf-8 показало имя файла тест. Но виндовіе файлі так и идут знаками вопросов. Пробовал ставить Сp-1251 в Putti виндовые файлы без изменений
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437357
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
2.
3.
4.
5.
public class Main {
    public static void main(String[] a) {
        System.out.println("А такой текст-то отображается нормально?");
    }
}



BlazkowiczУже теплее. Выкладывай сюда "иероглифы"
И исходные имена файлов.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437374
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avp.mk
Код: java
1.
2.
3.
4.
5.
public class Main {
    public static void main(String[] a) {
        System.out.println("А такой текст-то отображается нормально?");
    }
}



BlazkowiczУже теплее. Выкладывай сюда "иероглифы"
И исходные имена файлов.

слова нормально выводит. А иероглифов нет если при запуске указывать UTF-8. есть только ???????.xls - но он создан в винде
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437385
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛагманА что значит "со стороны консоли"? Когда в терминале выполняете ls, там нормальные имена? со стороны консоли все ????.txt и ??????.xls
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437389
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извиняюсь консоль - хотел сказать терминал
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437470
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если в терминале руками создать файл, то тоже вопросы?
Если нет, то скорее всего имена портятся ещё на этапе создания.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437509
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо дёрнуть ls -LF с опцией ASCII-wrap.
Я искал - хер поймешь как это включить. Вобщем если линуксоиды есть - подскажите.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437532
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
package testfs;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class TestFS {

    public static void main(String[] args) throws IOException {
        Path baseDir = Paths.get("/путь (сделать латиницей) к папке с русскими именами сохранёнными самбой/где не много файлов");
        
        for (Path path : Files.newDirectoryStream(baseDir)) {
            String name = path.getFileName().toString();
            for (int i = 0; i < name.length(); ++i) {
                System.out.printf("\\u%04x", name.codePointAt(i));
            }
            System.out.println();
        }
    }
}



Запостите что покажет. (и исходные имена!)
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38437898
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avp.mk
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
package testfs;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class TestFS {

    public static void main(String[] args) throws IOException {
        Path baseDir = Paths.get("/путь (сделать латиницей) к папке с русскими именами сохранёнными самбой/где не много файлов");
        
        for (Path path : Files.newDirectoryStream(baseDir)) {
            String name = path.getFileName().toString();
            for (int i = 0; i < name.length(); ++i) {
                System.out.printf("\\u%04x", name.codePointAt(i));
            }
            System.out.println();
        }
    }
}



Запостите что покажет. (и исходные имена!)
Выполнил русское имя файла "Тест.txt" созданное явой прочиталось - u0422ест.t'u0078t
Имя файла с кириллическими символами созданные виндой � до расширения
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38438221
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На этом тему можно закрывать. Java правильно читаеат имена файлов.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    public static void main(String[] args) {
        String
                u = "Тест.txt",
                n = "Тест.txt";

        System.out.println(
                u.equals(n)
                ? "Это одинаковые строки"
                : "Это не одинаковые строки");
    }



Имена файлов искажает Samba при при создании файлов на диске. Эту проблему можно решить и при помощи джавы (перекодируя имена файлов созданных самбой..)
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38438229
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avp.mk
Эту проблему можно решить и при помощи джавы (перекодируя имена файлов созданных самбой..)
Отсюда поподробнее. Как перекодировать имена файлов если я получаю набор знаков вопросов?
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38438233
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apprentice-noviceavp.mkЭту проблему можно решить и при помощи джавы (перекодируя имена файлов созданных самбой..)
Отсюда поподробнее. Как перекодировать имена файлов если я получаю набор знаков вопросов?
Не надо ничего перекодировать. Это путь в никуда. Надо найти в самбе настройку которая отвечает
за кодовую страницу и исправить это.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38438241
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНе надо ничего перекодировать. Это путь в никуда. Надо найти в самбе настройку которая отвечает
за кодовую страницу и исправить это.

Какую кодировку посоветуете Cp1251 или KOI8_R или UTF
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38438271
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНе надо ничего перекодировать. Это путь в никуда. Надо найти в самбе настройку которая отвечает
за кодовую страницу и исправить это.
А уже созданные файлы выкинуть?

P.S. Конечно лучше по-человечески настроить самбу.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38438342
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apprentice-novicemaytonНе надо ничего перекодировать. Это путь в никуда. Надо найти в самбе настройку которая отвечает
за кодовую страницу и исправить это.

Какую кодировку посоветуете Cp1251 или KOI8_R или UTF
Давай так. Я уже дал совет что нужно вопрос перенести в форум по Unix.
По сабжу скажу что Java работает со строками в Unicode. NTFS, UFS/ZFS скорее
всего тоже хранят имена файлов в многобайтных и международных кодировках.
Дефект скорее всего в настроках сервера. Где именно эта настройка я не знаю
т.к. не специалист в этих ваших самбах.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38438477
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonapprentice-noviceпропущено...


Какую кодировку посоветуете Cp1251 или KOI8_R или UTF
Давай так. Я уже дал совет что нужно вопрос перенести в форум по Unix.
По сабжу скажу что Java работает со строками в Unicode. NTFS, UFS/ZFS скорее
всего тоже хранят имена файлов в многобайтных и международных кодировках.
Дефект скорее всего в настроках сервера. Где именно эта настройка я не знаю
т.к. не специалист в этих ваших самбах.
Спасибо огромное все заработало
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38439843
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новые проблемы связанные с локализацией. Только я все настроил пришёл злой админ и открутил локализацию UTF8. Теперь у меня другая беда при помощи кусочка проги любезно предоставленным acp.mk (с небольшой модернизацией) я вычитываю имена файлов правильно но вот найти эти файлы на диске не магу. Вот небольшой примерчик

Код: java
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.
package direx;

import java.io.File;
import java.io.UnsupportedEncodingException;

import java.io.*;
import java.nio.file.*;

/**
 *
 * @author Виталий
 */
public class DirEx {
    private static int i;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        String str,name; 
        File [] af=null;
        File f;
        int faInd=0;

        f = new File("/home/rsync/k0");
        //f= new File("d:/test");
        Path baseDir=Paths.get("/home/rsync/k0");
        //Path baseDir=Paths.get("d:/test");
        
        System.out.println(f.list().length);
        af=new File[f.list().length];
        for (Path path:Files.newDirectoryStream(baseDir)){
        //File f = new File("d:/Test","UTF8");
            name=path.getFileName().toString();
            str=new String(name.getBytes(),"KOI8_R");
            //System.out.println(baseDir+"\\"+str);
            //str=new String(str.getBytes(),"Cp866");
            f=new File(baseDir+"/"+str); 
            af[faInd]=f;       
            faInd++;            
        }    
        for(int i=0; i<af.length; i++){
          
            System.out.println(af[i].getName()+" FileExist "+af[i].exists());
          
            
        }
    }
    
}


допустим у нас в папочке лежит Лист Microsoft Excel.xlsx
результат роботы следующий
Лист Microsoft Excel.xlsx FileExist false
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38439850
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите за неточность
Код: java
1.
str=new String(name.getBytes(),"UTF8");


Да и если заходиш через терминал система не отображает русские имена вместо них знаки вопросов. Можно ли єто решить методами JAVA?
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38439884
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты можешь провести остаток жизни в попытках угадать какой маппинг кодовой
страницы там реально работает. В скобках замечу что в некоторых криво настроенных
протоколах маппинг может быть произведён дважды наприм win1251->koi8->utf16.
У меня нет алгоритмов как искать решение этой задачи. Самое лучшее что ты можешь
сделать это 1) Сымитировать работу пользователя. Создай файл с названием
АБВГДЕ....ЄЮЯ.xls. со стороны юзера (на Windows). 2) ПОсмотри как он создался.
на стороне FreeBSD. 3) Если терминал не настроен (а он обычно не настроен)
то смотри в АSCIIwrap или короче говоря узри коды символов имени файла
в кодировке Unicode. 4) Прими решение о том как нужно обрабатывать эти
замаппленные имена.

И последнее. Купи бутылку коньяка и подружись с админом штоли...
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38439993
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
apprentice-noviceНовые проблемы
У вас на диске есть один файл. Например "еҐа­п.txt".
Вы читаете имя файла который есть на диске, получаете - "еҐа­п.txt", перекодируете - получаете другое имя например "херня.txt".

Спрашиваете а есть-ли файл "херня.txt" на диске. Что-же ответит вам файловая система.. (когда она только что сказала что есть "еҐа­п.txt", а других нет).

DirEx.java
Код: java
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.
package direx;

import java.io.*;
import java.nio.file.*;
import static java.nio.file.Files.*;

public class DirEx {

    private static final Path BASE_DIR = Paths.get("/home/rsync/k0");

    public static void main(String[] args) throws IOException {
        for (Path path : newDirectoryStream(BASE_DIR)) {
            String name = path.getFileName().toString();

            printIsExist(name);
            printIsExist(new String(name.getBytes(), "KOI8_R"));
            printIsExist(new String(name.getBytes(), "Cp1251"));
            printIsExist(new String(name.getBytes(), "Cp866"));
            printIsExist(new String(name.getBytes(), "UTF-8"));
            printIsExist(new String(name.getBytes(), "UTF-16"));
            printIsExist(new String(name.getBytes(), "UTF-32"));

            printIsExist(new String(name.getBytes("Cp1251"), "Cp1252"));

            System.out.println();
        }
    }

    private static void printIsExist(String fileName) {
        System.out.print("Файл \t\"");
        System.out.print(fileName);
        System.out.println(
                exists(BASE_DIR.resolve(fileName))
                ? "\"\t - существует"
                : "\"\t - не существует"
        );
    }
}

...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38440290
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avp.mkapprentice-noviceНовые проблемы
У вас на диске есть один файл. Например "еҐа­п.txt".
Вы читаете имя файла который есть на диске, получаете - "еҐа­п.txt", перекодируете - получаете другое имя например "херня.txt".

Спрашиваете а есть-ли файл "херня.txt" на диске. Что-же ответит вам файловая система.. (когда она только что сказала что есть "еҐа­п.txt", а других нет).

DirEx.java
Код: java
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.
package direx;

import java.io.*;
import java.nio.file.*;
import static java.nio.file.Files.*;

public class DirEx {

    private static final Path BASE_DIR = Paths.get("/home/rsync/k0");

    public static void main(String[] args) throws IOException {
        for (Path path : newDirectoryStream(BASE_DIR)) {
            String name = path.getFileName().toString();

            printIsExist(name);
            printIsExist(new String(name.getBytes(), "KOI8_R"));
            printIsExist(new String(name.getBytes(), "Cp1251"));
            printIsExist(new String(name.getBytes(), "Cp866"));
            printIsExist(new String(name.getBytes(), "UTF-8"));
            printIsExist(new String(name.getBytes(), "UTF-16"));
            printIsExist(new String(name.getBytes(), "UTF-32"));

            printIsExist(new String(name.getBytes("Cp1251"), "Cp1252"));

            System.out.println();
        }
    }

    private static void printIsExist(String fileName) {
        System.out.print("Файл \t\"");
        System.out.print(fileName);
        System.out.println(
                exists(BASE_DIR.resolve(fileName))
                ? "\"\t - существует"
                : "\"\t - не существует"
        );
    }
}


Да там UTF-8 но при попытке обратится к файлу к примеру Вася.txt он говорит что такого файла нет. Хотя я вижу что он есть и я его вычитал просто в системе он отображается крокозябрикаи.
...
Рейтинг: 0 / 0
И сноваКирелические символы в именах файлов на FreeBSD
    #38440337
apprentice-novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точнее не вычитал а прочитал имя. Но файловая система это имя не принимает. То-есть говорит что такого файла с таким именем нет когда я пытаюсь получить к примеру размер файла.
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / И сноваКирелические символы в именах файлов на FreeBSD
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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