比较UTF8编码的字符

时间:2017-02-15 10:22:15

标签: c++ unix utf-8

有一个csv文件,其中包含许多以utf-8编码的不同语言。我必须解析文件并验证无效字符。 我在下面写了一个示例程序,如图所示......

$('#datePickerId').datepicker();

如何将从文件读取的数据与无效字符进行比较?

2 个答案:

答案 0 :(得分:0)

if(strchr(invalidUTF8Chars.c_str(), ch) == nullptr){ printf("Invalid character\n"); } 找不到字符时,它返回一个NULL指针。您需要做的是检查返回是否为NULL指针:

function editItem(id, field_editable) {

为方便起见,此处为strchr()引用。

答案 1 :(得分:0)

UTF-8的无效字符可能意味着UTF-8编码无效且与任何字符都不对应,或者UTF-8解码会导致您不知道的字符想。

您对第二个变体感兴趣,其中每个字符都被编码为UTF-8中的一个或多个字节,特别是" \ u005E"是UTF-8中的一个字节,其他字节是2个字节。

因此,您不能拒绝示例中的单个字节,但要么需要解码为Unicode字符,要么将所有内容读作UTF-8,然后使用以下内容查找问题:

  if (strstr(readFile, u8"\u00A0") != nullptr || strstr(readFile, u8"\u005E") != nullptr ... ) printf("Found bad character\n");