Tag: utf 16

为什么mbstowcs返回“无效的多字节字符”

“קמ"ד חיר!” 是从gdb中的变量的打印粘贴的输入字符串副本。 调用mbstowcs返回-1,另一个输入为NULL。 关于什么是错误/如何解决这个问题的任何想法? “\327\247\327\236"\327\223 \327\227\327\231\327\250!\000\000\000″是八进制中包含非ascii字符的字符串 程序区域为C.

UTF-16字符串终止符

UTF-16字符串的字符串终止符序列是什么? 编辑: 让我重新解释一下这个问题,试图澄清一下。 对wcslen()的调用是如何工作的?

C:确定UTF-8字符串中UTF-16字符串需要多少字节的最有效方法

我已经看到一些非常聪明的代码用于在Unicode代码点和UTF-8之间进行转换,所以我想知道是否有人(或者会喜欢设计)这个。 给定UTF-8字符串,相同字符串的UTF-16编码需要多少字节。 假设UTF-8字符串已经过validation。 它没有BOM,没有超长序列,没有无效序列,是以空值终止的。 它不是CESU-8 。 必须支持带代理的完整UTF-16。 具体来说,我想知道是否有快捷方式可以在不完全将UTF-8序列转换为代码点的情况下知道何时需要代理对。 我见过的最好的UTF-8代码点代码使用了矢量化技术,所以我想知道这是否也可以。

如何将UTF-16转换为UTF-32并在C中打印生成的wchar_t?

我正在尝试打印出一串UTF-16字符。 我暂时发布了这个问题,给出的建议是使用iconv转换为UTF-32并将其打印为一串wchar_t。 我做了一些研究,并成功编写了以下代码: // *c is the pointer to the characters (UTF-16) i’m trying to print // sz is the size in bytes of the input i’m trying to print iconv_t icv; char in_buf[sz]; char* in; size_t in_sz; char out_buf[sz * 2]; char* out; size_t out_sz; icv = iconv_open(“UTF-32”, “UTF-16”); memcpy(in_buf, c, sz); in = […]

在Windows和Linux下,在C中将UTF-16转换为UTF-8

我想知道是否有一个推荐的’交叉’Windows和Linux方法,用于将字符串从UTF-16LE转换为UTF-8? 或者每个环境应该使用不同的方法? 我设法谷歌几个引用’iconv’,但对于somreason我找不到基本转换的样本,例如 – 将wchar_t UTF-16转换为UTF-8。 任何人都可以推荐一种“交叉”的方法,如果您知道参考文献或带样本的指南,我将非常感激。 谢谢,Doori酒吧