用于验证 UTF-8 的 C++ 测试

标签 c++ testing utf-8 utf

我需要为 UTF-8 验证编写单元测试,但我不知道如何在 C++ 中编写不正确的 UTF-8 情况:

TEST(validation, Tests)
{
    std::string str = "hello";
    EXPECT_TRUE(validate_utf8(str));

    // I need incorrect UTF-8 cases
}

如何在 C++ 中编写不正确的 UTF-8 大小写?

最佳答案

您可以使用十六进制形式的 \x 转义序列或八进制形式的 \000 转义序列指定字符串中的各个字节。

例如:

std::string str = "\xD0";

这是不完整的 UTF8。

看看https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt适用于有效和格式错误的 UTF8 测试用例。

关于用于验证 UTF-8 的 C++ 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70926826/

相关文章:

ruby-on-rails - 预计 nil 不会成为新记录

node.js - 在 Chromium 中传递 "Your connection is not private"页面

sql-server - 如何在SQL Server数据库中使用UTF-8排序规则?

java - PHP 和 Clojure (Java) 代码之间的原始 MD5 base64 编码字符串对于某些字符的不同结果

testing - 我在实现 Verilog Test Fixture 来模拟我的设计时遇到问题

c++ - 如何在 C++ 的私有(private)结构中获取/设置值?

c++ - 二叉搜索树

c++ - 模板运算符 << 循环

c++ - C++0x 中有哪些新的 Unicode 函数?

c++ - 当 watched expression 变为 true 时中断