кодировки
Преобразует между различными кодировками символов. В UNIX это использует библиотеку iconv, в Windows — API Windows.
Импорты
- os
Типы
EncodingConverter = ptr ConverterObj
- может преобразовывать между двумя наборами символов Исходный кодРедактировать
EncodingError = object of ValueError
- исключение, которое генерируется при ошибках кодирования Исходный кодРедактировать
Процедуры
proc getCurrentEncoding(uiApp = false): string {...}{.raises: [], tags: [].}- извлекает текущую кодировку. В Unix всегда возвращается "UTF-8". Параметр
uiApp— специфичен для Windows. Если true, возвращается кодовая страница пользовательского интерфейса, если false — кодовая страница консоли. Исходный кодРедактировать proc open(destEncoding = "UTF-8"; srcEncoding = "CP1252"): EncodingConverter {...}{. raises: [EncodingError], tags: [].}- открывает преобразователь, который может преобразовывать из
srcEncodingвdestEncoding. ГенерируетIOErrorесли запрос не может быть выполнен. Исходный кодРедактировать proc close(c: EncodingConverter) {...}{.raises: [], tags: [].}- освобождает ресурсы, которые удерживает преобразователь
c. Исходный кодРедактировать proc convert(c: EncodingConverter; s: string): string {...}{.raises: [OSError], tags: [].}- Исходный кодРедактировать
proc convert(s: string; destEncoding = "UTF-8"; srcEncoding = "CP1252"): string {...}{. raises: [EncodingError, OSError], tags: [].}- преобразует
sвdestEncoding. Предполагается, чтоsнаходится вsrcEncoding. Это открывает преобразователь, использует его и снова закрывает, что более удобно, но, вероятно, менее эффективно, чем повторное использование преобразователя. utf-16BE, utf-32 преобразования не поддерживаются в windows Исходный кодРедактировать
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/encodings.html