2015-02-28 6 views
3

Помогите мне написать правильный код, мне нужно преобразовать строку из utf8 в cp1251. Использование библиотеки Uutf.ocaml конвертировать строку UTF8 в CP1251

мой код не работает

let str = "русский текст" in 
let decode = Uutf.encoding_of_string str in 
Uutf.encoding_to_string decode;; 

Я нашел другое решение. Преобразование строки через библиотеку Tk.

open Tk;; 
let top = openTk();; 
let str = "abracadabra" in 
let x = Encoding.convertfrom ~encoding:"utf-8" abracadabra in 
print_endline(x);; 
+1

Вы говорите, что вы хотите использовать 'BatUTF8', но ваш код использует' Uutf'. Какую библиотеку вы хотите использовать? – PatJ

+0

Средство рендеринга Vg PDF имеет код для преобразования скалярных значений Unicode в CP1251. См. [Здесь] (https://github.com/dbuenzli/vg/blob/a100b5b1b382229ab42e60b62330abe70c4aaa7c/src/vgr_pdf.ml#L376-L393) –

+0

К сожалению, связанный код предназначен для CP1252, но с использованием [этой ссылки] (http: //www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT), и код должен быть прямым упражнением. –

ответ

2

В комплект поставки не входит ни батарейка, ни Uutf, как я могу сказать, обрабатывает кодировку CP1251. Вы можете посмотреть на Camomile.

(Интересно спросить себя, что кодирование используется в процитированном тексте исходного кода.)

+0

Я пробовал ромашку, но после компиляции сгенерировать файл ошибки «camomile.a» не найден –

+0

Если все составлено правильно, у вас, вероятно, есть все, что вам нужно. Вам просто нужно сообщить компилятору, какие библиотеки использовать. Подробности зависят от того, как выглядит ваша среда разработки. –

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