#1 2014-02-12 08:45

judictio
Member
Registered: 2013-10-10
Posts: 2

Сохранение фалов в UTF-8

Денис, можно ли при переименовании пересохранить файлы в кодировке UTF-8 путем PascalScript Rule или настроек конфигурационных файлов? Спасибо.

Offline

#2 2014-02-13 00:43

den4b
Administrator
From: den4b.com
Registered: 2006-04-06
Posts: 3,479

Re: Сохранение фалов в UTF-8

Да сделать это можно с помощью правила PascalScript, но важно помнить что правила срабатывают в процессе генерирования нового имени (Просмотр или Preview), а не в процессе переименования. Так что как только ты добавишь это правило все файлы сразу же продут через обработку.

Чтобы файлы не обрабатывались больше одного раза, мы вставим байтовую маску UTF8 (0xEF, 0xBB, 0xBF) в начале файла и проверим на ее наличие перед обработкой.

Этот скрипт конвертирует содержимое файла из ANSI (системной кодовой страницы) в UTF8:

var
  DataAnsi, DataUTF8, UTF8BOM: AnsiString;
  DataWide: WideString;
begin
  UTF8BOM := Chr($EF) + Chr($BB) + Chr($BF);
  DataAnsi := FileReadContent(FilePath);
  if Copy(DataAnsi, 1, Length(UTF8BOM)) <> UTF8BOM then
  begin  
    DataWide := AnsiToWide(DataAnsi);
    DataUTF8 := UTF8BOM + UTF8Encode(DataWide);
    FileWriteContent(FilePath, DataUTF8);
  end;
end.

Этот скрипт также опубликован здесь:
ReNamer:Scripts:Convert_file_content_from_ANSI_to_UTF-8

Offline

Board footer

Powered by FluxBB