我必须用符号来显示分数,而且我似乎无法显示这些4。
char UCP_VULGAR_FRACTION_ONE_HALF_UTF8 = L'\u00BD';
char UCP_VULGAR_FRACTION_ONE_QUARTER_UTF8 = L'\u00BC';
char UCP_VULGAR_FRACTION_THREE_QUARTERS_UTF8 = L'\u00BE';我可以获得1/2、1/4和3/4的显示效果(cout<< (char)UCP_VULGAR_FRACTION_ONE_HALF_UTF8),但对于这些分数也是这样:
char UCP_VULGAR_FRACTION_ONE_EIGHTH_UTF8 = L'\u215B';
char UCP_VULGAR_FRACTION_THREE_EIGHTHS_UTF8 = L'\u215C';
char UCP_VULGAR_FRACTION_FIVE_EIGHTHS_UTF8 = L'\u215D';
char UCP_VULGAR_FRACTION_SEVEN_EIGHTHS_UTF8 = L'\u215E';给我[,\,]和^。我做错了什么?我试过g_unichar_to_utf8但没有成功.
发布于 2017-12-21 22:09:17
对于UTF-8,您需要存储多字节字符-包含在一个或多个字节中的字符。通常这些存储在std::string中。
std::string const UCP_VULGAR_FRACTION_ONE_EIGHTH_UTF8 = u8"\u215B";
std::string const UCP_VULGAR_FRACTION_THREE_EIGHTHS_UTF8 = u8"\u215C";
std::string const UCP_VULGAR_FRACTION_FIVE_EIGHTHS_UTF8 = u8"\u215D";
std::string const UCP_VULGAR_FRACTION_SEVEN_EIGHTHS_UTF8 = u8"\u215E";或可能为空终止char数组。
char const* UCP_VULGAR_FRACTION_ONE_EIGHTH_UTF8 = "\u215B";
char const* UCP_VULGAR_FRACTION_THREE_EIGHTHS_UTF8 = "\u215C";
char const* UCP_VULGAR_FRACTION_FIVE_EIGHTHS_UTF8 = "\u215D";
char const* UCP_VULGAR_FRACTION_SEVEN_EIGHTHS_UTF8 = "\u215E";发布于 2017-12-21 22:02:37
使用wchar_t而不是char。还要注意,您不能使用wchar_t打印std::cout,您需要使用宽版本的std::cout,即std::wcout。顺便说一句,如果将wcout与cout一起使用,程序很可能会崩溃。因此,您可能希望将这些unicode字符存储在普通的UTF-8 std::string中而不是wchar_t中,并使用std::cout打印它们。
https://stackoverflow.com/questions/47933227
复制相似问题