gpt4 book ai didi

c - 有效的 UTF-8 字符串与 C 中的西里尔符号

转载 作者:行者123 更新时间:2023-12-04 04:59:21 24 4
gpt4 key购买 nike

我尝试用 C 解析 UTF-8 JSON 消息。
我将以下代码传递给解析器:

char *text = "{\"mdl\":\"users\",\"fnc\":\"getuserslist\"}";

和所有作品。但是,如果消息有西里尔字符,我的两个解析器都会说该字符串是“ 不是有效的 UTF-8 字符串 ”。
示例:
char *text = "{\"mdl\":\"пользователи\",\"fnc\":\"получитьсписокпользователей\"}";

我为 C 使用了 Jansson C 解析器和 CCAN JSON 解析器。
在我的 函数我有以下调用 setlocale :
setlocale(LC_ALL, "ru_RU.utf8");

如何使用其中的西里尔字符获取有效的 UTF-8 字符串?

最佳答案

源编码(用于对 C 源中的文本进行编码的编码)和目标编码(用于对运行时字符串进行编码的编码)之间的关系并不明显。见 this question有关此的更多讨论。

确保您的源代码编码是 UTF-8,并且编译器会保留它。

或者,您可以手动将字符串编码为 UTF-8,方法是用反斜杠转义的 UTF-8 序列替换非 ASCII 字符,以确保更确定。

关于c - 有效的 UTF-8 字符串与 C 中的西里尔符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com