在下面的小程序中,我无法弄清楚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;
}
输出: 错误!
当我更改std :: string input_string =“mod-12k”;使用std :: string input_string =“sko-w”; 我没有错误......
我正在使用ubuntu 64 bit 12.04和c ++和ICU 49
我无法找出我做错了什么......
答案 0 :(得分:1)
真正的问题是你需要在第5行:
UErrorCode status = U_ZERO_ERROR;