utext_openUTF8 字符串"mod-12k"返回错误;

utext_openUTF8 return error for string "mod-12k";

本文关键字:返回 错误 mod-12k utext openUTF8 字符串      更新时间:2023-10-16

在下面的小程序中,我无法弄清楚为什么utext_openUTF8返回错误。

  int utf8_is_it_model3(std::string input_string)
  {
int error_number=0;
UText *ut = NULL;
    UErrorCode status;
    //char *pEnd;
const char * c2 = input_string.c_str();
    ut = utext_openUTF8(ut, c2, -1, &status);
 if(U_FAILURE(status))
 {
            error_number=-1
    std::cout<<" Error!n";
    return error_number;
 }

utext_close(ut);
 return error_number;
 }   
int main(int argc, char* argv[])
{
int i;
bool is_it_model=false;
std::string input_string="mod-12k";
//std::string input_string="m54-q";
//std::string input_string="- ";
i=utf8_is_it_model3(input_string);
return 0;
    }

输出: 错误!

当我更改标准::字符串input_string="mod-12k"时; 使用 std::字符串 input_string="sko-w";我没有错误...

我正在使用 ubuntu 64 位 12.04 和 c++ 和 ICU 49

无法找出我做错了什么...

真正的问题是你需要在第 5 行:

UErrorCode status = U_ZERO_ERROR;