Spec-Zone.ru › Nim

std/unidecode

Source Edit

Этот модуль основан на модуле Python Unidecode от Tomaz Solc, который, в свою очередь, основан на модуле Perl Text::Unidecode от Sean M. Burke.

Он предоставляет процедуру unidecode, которая выполняет транслитерацию Unicode в ASCII: она находит последовательность символов ASCII, которая является наиболее близким приближением к строке Unicode.

Например, наиболее близким к строке "Äußerst" в ASCII является "Ausserst". Конечно, в этом преобразовании теряется некоторая информация, поскольку несколько строк Unicode могут быть преобразованы в одно и то же представление ASCII. Поэтому это строго однонаправленное преобразование. Однако читатель, скорее всего, сможет догадаться из контекста, какой была исходная строка.

Для работы этому модулю необходим файл данных unidecode.dat: по умолчанию этот файл встроен в ваше приложение в качестве ресурса. Вы также можете определить символ --define:noUnidecodeTable во время компиляции и использовать процедуру loadUnidecodeTable для инициализации этого модуля.

Импорты

unicode, strutils

Процедуры

proc loadUnidecodeTable(datafile = "unidecode.dat") {....raises: [], tags: [],
    forbids: [].}
Загружает файл данных, необходимый процедуре unidecode для работы. Это требуется только в том случае, если модуль был скомпилирован с использованием переключателя --define:noUnidecodeTable. Его необходимо вызвать в главном потоке перед тем, как любой другой поток сможет вызвать unidecode. Source Edit
proc unidecode(s: string): string {....raises: [], tags: [], forbids: [].}
Находит последовательность символов ASCII, которая является наиболее близким приближением к строке UTF-8 s.

Пример:

doAssert unidecode("北京") == "Bei Jing "
doAssert unidecode("Äußerst") == "Ausserst"
Source Edit

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/unidecode.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API