Здравствуйте, гость ( Вход | Регистрация )

> utf-8 cp1251 сортировка файлов(фильтр)
FREEON
сообщение 5.1.2020, 14:44
Сообщение #1


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.346
Возраст: 25



Кто знает программу, плагин, фильтр или способ сортировки текстовых файлов(массовый) по кодировке. Что бы например выбрал папку и там показывалось какой файл находится кодировке utf-8 или cp1251 или еще какой.
Массовая перекодировка различными программами не дает желаемого результата т.к. из перекодировки допустим из cp1251 в utf-8 будет норм вариант если этот файл в этой кодировке но если он был в ютф то при кодировке выдаст крокозябры. Поэтому и нужно точный фильтр который показал какой файл в какой кодировке изначально. Знаю к пилоту мало относится но есть ли разумное решения вопроса
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 5.1.2020, 20:34
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 25987
Пользователь №: 16.971
Возраст: 29



uft8 или ansi
Код
--lua
function utf ( path_to_file )
    local f = io.open(path_to_file, "rb")  -- открыть файл
    if f then   -- если открылся
        local s = ''
        for v in f:lines() do s = s .. v end   -- прочитать файл
        f:close()  -- закрыть файл

        if string.match(table.concat({s:byte(1, 3)}, ' '), "239 187 191")  then return 1 end   -- если есть bom uft8

        -- поиск русских символов в юникод
        for i = 144, 191 do
            if string.match(table.concat({s:byte(1, #s)}, ' '), "208 " .. tostring(i)) then return 1 end
        end
        for i = 128, 143 do
            if string.match(table.concat({s:byte(1, #s)}, ' '), "209 " .. tostring(i)) then return 1 end
        end
        return 0
    end
    return -1
end


local path = [[C:\123.txt]]  -- путь к файлу
local result = utf (path)  -- вызов функции
if result == 0 then log("ANSI") end
if result == 1 then log("UTF8") end
if result == -1 then log("Файл не найден") end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 15.11.2025, 14:32
Designed by Nickostyle