2013-03-15 3 views
1

Я читаю некоторые строки из текстового файла, проблема заключается в том, что строки UTF8 и содержат символы, которые я хотел бы, чтобы удалить такие как:Преобразовать UTF8 в ASCII с использованием Lazarus

An не простое решение было бы для мне заменить каждое вхождение недопустимых символов, а потому, что я ленив я хочу более простым решением

до сих пор я попытался это:

line := Utf8ToAnsi(line); 

Где линия моя UTF8 кодируется строка ... Я попытался eaven декларирования линия как UTF8String ...

Есть ли жизнеспособное решение в этом вопросе? Благодаря

+0

Не могли бы вы предоставить примерную строку с ожидаемым результатом, пожалуйста? Он отлично работает для меня. Хотя вы должны сохранить результат вызова функции 'Utf8ToAnsi' в отдельную переменную типа AnsiString. – TLama

+0

@TLama Я тоже пробовал это, сохраняя AnsiString, но все же никакого результата не было бы примером, который AbrogaŢie попытается сохранить в файле, прочитав его, а затем снова напишет в другом файле. – opc0de

+0

[http: //wiki.lazarus.freepascal .org/Multiplatform_Programming_Guide # Text_encoding] (http://wiki.lazarus.freepascal.org/Multiplatform_Programming_Guide#Text_encoding)? – Abelisto

ответ

1

не простое решение было бы для меня, чтобы заменить каждое вхождение недопустимых символов, а потому, что я ленив я хочу более простым решение

Я сделал функцию, которая заменяет каждый диакритического вхождения в аналогичный символ, например: Á> A, Ç> C, ã> a и т. д. Вы можете использовать это решение. Пожалуйста, взгляните на эту ссылку: https://github.com/silvioprog/rutils/blob/master/src/rutils.pas#L1589.

HTH

Смежные вопросы