Encoding ocaml将字符串UTF8转换为CP1251

Encoding ocaml将字符串UTF8转换为CP1251,encoding,ocaml,Encoding,Ocaml,帮我写正确的代码,我需要转换字符串从utf8到cp1251。使用库Uutf 我的代码无效 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

帮我写正确的代码,我需要转换字符串从utf8到cp1251。使用库Uutf

我的代码无效

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);;

据我所知,电池和Uutf都不能处理CP1251编码。你可以看看


(问自己源代码引用的文本中使用了什么编码是很有意思的。)

你说你想使用
BatUTF8
,但你的代码使用
Uutf
。要使用哪个库?Vg PDF呈现程序具有将Unicode标量值转换为CP1251的代码。请参阅Oops抱歉,链接的代码是针对CP1252的,但是使用和代码应该是一个直接的练习。谢谢,这很好,但是如何从字符串中获取2字节并转换为int
let uchar_to_CP1252=[0x20AC,0x80;0x201A,0x82;0x0192,0x83;0x201E,0x84;0x2026,0x85;0x2020,0x86;0x2021,0x87;0x02C6,0x88;0x2030,0x89;0x0160,0x8A;0x2039,0x8B;0x0152,0x8C;0x017D,0x8E;0x2018,0x91;0x2019,0x92;0x201C,0x93;0x201D,0x94;0x2022,0x95;0x2013,0x96;0x2014,0x97;0x02DC,0x98;0x2122,0x2030Ax9B;0x0153,0x9C;0x017E,0x9E;0x0178,0x9F;];
print_char(char_of int(List.assoc 2byte uchar_to_cp1252));
您可以使用
Uutf.String.fold_utf_8
折叠utf-8编码字符串的Unicode标量值。我尝试过甘菊,但在编译后生成错误文件“Camomile.a”未找到如果编译的内容正常,您可能拥有所需的一切。您只需告诉编译器要使用哪些库。详细信息取决于您的开发环境。