Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用ucnv_convert()时显示韩文垃圾字符_C++_Icu - Fatal编程技术网

C++ 使用ucnv_convert()时显示韩文垃圾字符

C++ 使用ucnv_convert()时显示韩文垃圾字符,c++,icu,C++,Icu,我正在为我的应用程序使用ibus键盘输入韩语字符。 我以第一、中间、最后的格式输入一个人的名字。 现在,当我使用ucnv_convert()从“EUC-KR”转换为“UTF-8”时 中间名称显示为方框字符。 下面是我的代码 void convert(unsigned char * in, unsigned int inLen, char *from, char *to) { unsigned char *inbuff = in; char *pou

我正在为我的应用程序使用ibus键盘输入韩语字符。 我以第一、中间、最后的格式输入一个人的名字。 现在,当我使用ucnv_convert()从“EUC-KR”转换为“UTF-8”时 中间名称显示为方框字符。 下面是我的代码

    void convert(unsigned char * in, unsigned int inLen, char *from, char *to)
    {
        unsigned char *inbuff = in;
        char *pout = NULL;
        int outBuffLen = inLen*4;
        UErrorCode  ErrorCode = U_ZERO_ERROR;
        pout = new char [outBuffLen +1];
        memset(pout,0, outBuffLen );
        int size = ucnv_convert(to, from, pout,outBuffLen, (const char *) inbuff, inLen, &ErrorCode );

    }
输入字符集:EUC-KR(使用ibus键盘) 输出:UTF-8

如果单词“middle”(朝鲜语)被转换,它总是给我方框字符。
请帮忙읻" 无法在EUC-KR中表示。它不在“common 2350音节”列表中。但是,它可以在CP949中表示,CP949是Microsoft对EUC-KR的向后兼容扩展。当人们说“EUC-KR”时,他们通常指的是CP949。因此我建议您改为试试。

읻“不能在EUC-KR中表示。它不在“公共2350音节”列表中。但是,它可以在CP949中表示,CP949是Microsoft对EUC-KR的向后兼容扩展。当人们说“EUC-KR”时“它们通常指的是CP949。所以我建议你试试这个词。

你能澄清一下这个词在韩语中到底是什么吗?转换后是否也使用了
pout
?功能是否不完整?你怎么知道它会给你方框字符?你在哪里检查
ErrorCode
,看看使用
ucnv\u convert()읻. 是的,功能不完整。当我尝试使用std::cout打印pout时,它会为上面的字符提供方框字符。@MujjinGun当我使用韩语键盘键入middle时,我得到ㅡㅑㅇ읻 但是在UTF-8转换之后읻 字符替换为方框如果您的终端使用euc kr,并且您尝试打印utf-8,我不希望它正确呈现。您能澄清一下韩语中的单词是什么吗?转换后是否也使用了
pout
?功能是否不完整?你怎么知道它会给你方框字符?你在哪里检查
ErrorCode
,看看使用
ucnv\u convert()읻. 是的,功能不完整。当我尝试使用std::cout打印pout时,它会为上面的字符提供方框字符。@MujjinGun当我使用韩语键盘键入middle时,我得到ㅡㅑㅇ읻 但是在UTF-8转换之后읻 字符替换为方框如果您的终端使用euc kr,并且您尝试打印utf-8,我不希望它能够正确渲染。@MujjnGun谢谢您的建议。我将源代码改为CP949并尝试了。现在在UTF-8转换之后,我看不到方框字符。但“中间”显示为“ㅡ야솻" 而不是“ㅡㅑㅇ읻“。这是正确的翻译吗?您好@MujjinGun,您能帮我回答上面的问题吗?@MujjnGun谢谢您的建议。我将源代码改为CP949并尝试了。现在在UTF-8转换后,我看不到方框字符。但“middle”显示为”ㅡ야솻“而不是”ㅡㅑㅇ읻“。这是正确的翻译吗?你好@MujjinGun,你能帮我回答上面的问题吗?”?