powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
15 сообщений из 15, страница 1 из 1
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39332378
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, программирую одно приложение, где пользователь может работать со своими файлами но в моем приложении. Файлы текстовые. Я несколько раз стыкнулся с проблемами, что например читаю файл в UTF-8, а он UTF-16(LE) или наоборот.
Иногда получаю "крокозябры".

Поэтому нашел https://code.google.com/archive/p/juniversalchardet/ и с его помощью проверяю кодировку.

Внимание вопрос.

Если я определил кодировку отличную от UTF-8, а содержимое файла мне нужно в UTF-8 - мои действия?
Читаю файл в нужной кодировке и перезаписываю старый в кодировке UTF-8?
Как это провернуть максимально быстро с точки зрения перформенса?

Спасибо за подсказки.
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39332541
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Здравствуйте, программирую одно приложение, где пользователь может работать со своими файлами но в моем приложении. Файлы текстовые. Я несколько раз стыкнулся с проблемами, что например читаю файл в UTF-8, а он UTF-16(LE) или наоборот.
Иногда получаю "крокозябры".

Поэтому нашел https://code.google.com/archive/p/juniversalchardet/ и с его помощью проверяю кодировку.

Внимание вопрос.

Если я определил кодировку отличную от UTF-8, а содержимое файла мне нужно в UTF-8 - мои действия?
Читаю файл в нужной кодировке и перезаписываю старый в кодировке UTF-8?
Как это провернуть максимально быстро с точки зрения перформенса?

Спасибо за подсказки.

Записать в новый удалить старый переименовать новый в старый, главное не побайтно писать.
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333306
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
llemingглавное не побайтно писать. - не понял.. ((( А как файл записывать? Файл же и есть массив байтов..
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333398
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_llemingглавное не побайтно писать. - не понял.. ((( А как файл записывать? Файл же и есть массив байтов..
_webdev_Как это провернуть максимально быстро с точки зрения перформенса?


http://www.realcoding.net/articles/glava-18-potoki-vvodavyvoda.html#4
буферизированный IO
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333406
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так и знал что где есть почти готовое решение
Apache Commons FileUtils

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class Main {
    public static void main(String[] args) throws IOException {
        String filename = args[0];
        File file = new File(filename);
        String content = FileUtils.readFileToString(file, "ISO8859_1");
        FileUtils.write(file, content, "UTF-8");
    }
}



если я правильно понял FileUtils даже проблему с BOM порешает сама.

Из минусов приведенного решения это то предполагает что файлы легко влезают в память т.е. небольшие по размеру.
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333414
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingИз минусов приведенного решения это то предполагает что файлы легко влезают в память т.е. небольшие по размеру.
Используй IOUtils.copy(), а текстовые стримы с нужными кодировками создавай сам.
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333421
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming,
это какой _текстовый_ файл в память не влезает? )
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333446
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123это какой _текстовый_ файл в память не влезает? )
Гы. Легко генерю трейс-файлы на десятки гигов в час. :)
Ночной трейс перестает влезать в память.
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333455
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingтак и знал что где есть почти готовое решение
Без готового решения, кода не сильно больше:
http://stackoverflow.com/a/3018806
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333462
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевPetro123это какой _текстовый_ файл в память не влезает? )
Гы. Легко генерю трейс-файлы на десятки гигов в час. :)
Ночной трейс перестает влезать в память.
уровень логирования повысь). Или ротацию. Генерировать и туалетную бумагу можно).
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333578
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123lleming,
это какой _текстовый_ файл в память не влезает? )

в теории возможно. на практике конешно врядли.
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333599
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
llemingтак и знал что где есть почти готовое решение
Apache Commons FileUtils - Пасиб, да, в этом проекте я пользуюсь (com.google.common.io) мне хотелось понять принцип, не упускаю ли я чего.
На счет величины, то это не мой случай, у меня размер файла макс 1Мб будет,
И да, хороший пункт с BOM.
У меня вот решение.
Код: java
1.
2.
3.
            if (xmlString.startsWith("\uFEFF")) {
                xmlString = xmlString.substring(1);//remove BOM
            }
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333607
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_,

А если случится : EF BB BF ?
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333663
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123lleming,
это какой _текстовый_ файл в память не влезает? )

Логи гуглового рекламного сервера большого клиента. Один файл на час.
gz файл на 2Гб - легко. Распакованный- ну ты понял
...
Рейтинг: 0 / 0
Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
    #39333703
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Арсеньев_webdev_,

А если случится : EF BB BF ? - А такого не знаю, не читал. Просто была проблема, и вот таким способом она у меня решилась... Нужно будет почитать...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Разбор полётов с кодировками или приведение отличных от UTF-8 в UTF-8? Стратегия?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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