如何在终端中确定Unicode字是宽还是窄(东亚宽度)?

如何在终端中确定Unicode字是宽还是窄(东亚宽度)?,unicode,utf-8,widechar,Unicode,Utf 8,Widechar,我已经检查了此文档: 还有这个: (实际上,wcwitdh是东亚宽度的Unicode 5.0版本) 但是,一些词,如。(“\u2027”,在东亚语中是不明确的 在Linux中,它像普通字母表一样窄(例如a) 然而,在Windows中,它与中文单词一样宽(例如我) 此外,对于一些单词,如®(“\u00ae”,在C++中),在东亚宽度中也有歧义 但是在Linux和Windows中,®都像普通字母表一样窄 如何在不同的平台上正确确定Unicode单词是宽还是窄?(用于歧义词)。Windows一开始

我已经检查了此文档:

还有这个:

(实际上,
wcwitdh
是东亚宽度的Unicode 5.0版本)

但是,一些词,如
“\u2027”
,在东亚语中是不明确的

在Linux中,它像普通字母表一样窄(例如
a

然而,在Windows中,它与中文单词一样宽(例如

此外,对于一些单词,如
®
“\u00ae”
,在C++中),在东亚宽度中也有歧义

但是在Linux和Windows中,
®
都像普通字母表一样窄


如何在不同的平台上正确确定Unicode单词是宽还是窄?(用于歧义词)。

Windows一开始不处理UTF-8,API对ANSI(使用本地用户定义的字符集)或UTF-16编码的字符串进行操作。Linux主要是UTF-8。您需要注意正在使用的字符集编码。ANSI、UTF-8、UTF-16,它们都以不同的方式对相同的数据进行编码。有什么问题吗?如果字符的宽度在
EastAsianWidth.txt
中“不明确”,则需要查看周围的上下文以确定宽度:@RemyLebeau,谢谢,但问题不在于编码。我想知道的是一个Unicode字占用了多少列(终端中cout或printf之后的宽度)。我不是说如何确定Unicode的
字节数。但是谢谢你的回复@一二三 我将更仔细地阅读这一段。Windows从一开始就不涉及UTF-8,API操作ANSI(使用本地用户定义的字符集)或UTF-16编码的字符串。Linux主要是UTF-8。您需要注意正在使用的字符集编码。ANSI、UTF-8、UTF-16,它们都以不同的方式对相同的数据进行编码。有什么问题吗?如果字符的宽度在
EastAsianWidth.txt
中“不明确”,则需要查看周围的上下文以确定宽度:@RemyLebeau,谢谢,但问题不在于编码。我想知道的是一个Unicode字占用了多少列(终端中cout或printf之后的宽度)。我不是说如何确定Unicode的
字节数。但是谢谢你的回复@一二三 我将更仔细地阅读这一段。