我目前使用的libc库缺少wctomb(),所以我正在寻找一个替代实现。我应该注意的一些复杂性是什么?我可以简单地获取wchar中的每个字节并将它们放入char数组中吗?
发布于 2010-02-14 00:38:18
您可能希望选择P.J. Plauger's book, "The Standard C Library"的副本-它提供了wctomb()的基本实现,并讨论了一般的宽字符支持。
发布于 2010-02-14 00:33:32
这取决于什么编码是wchar,以及您期望在char数组中使用什么编码。如果它们是相同的(编码),那么AFAIK是的,你可以一个字节一个字节地做,但要注意字节顺序。
发布于 2010-02-14 00:59:21
如果wchar是<= 127,那么您可以很容易地将每个wchar分配给一个char,因此只使用了7位。只要你选中它并创建一个错误,如果没有给出它,你就会被保存,并且可以这样做。
这是因为unicode字符的前7位(无论是8位、16位还是32位)与ASCII的前7位相同。
如果你真的想写一个转换器,你需要知道很多字符表等等。
有一个功能齐全的unicode库,叫做ICU,它的灵感来自于IBM。它非常强大和庞大。但如果没有任何帮助,这可能会有所帮助。
https://stackoverflow.com/questions/2258259
复制相似问题