MDK5 UTF8

前言

在MDK5的STM32工程中,要拼装json串给web端,web端的easyui用的UTF8编码。
从配置文件读回的字段内容也是UTF8编码。
但是工程源码,以前同事选的GB2312简体。
那我拼装json时,有些固定的中文字符串,就是GB2312, 到了web端显示就乱码了。
但是我拼装时,将固定字符串,拷贝进缓冲区,再用工具函数转成UTF8又很繁琐。
于是找个批量文件编码转换工具,将工程所有.h, .c全部转成UTF8编码。
这时,编译不过了,查资料,要设置C/C++选项为 --locale=english. 这是能编译过了。

试验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在代码中,再使用字符串赋值时,就是UTF8的固定字符串

#define MSG_NO_THIS_DEVICE "没有此设备"

		// 用批量转换工具文件编码转换-64_by_java.exe 将全部的.h .c 由GB2312转成UTF8
		// 在C++选项中增加 --locale=english
		// 必须将工程编码设置为UTF8, 才能在Json中赋值固定中文字符串,否则到了web端,就乱码了
		pjson_value = cJSON_CreateString((b_find_device_id ? psz_buf_val : MSG_NO_THIS_DEVICE));
		if (NULL == pjson_value) {
			break;
		}

发布了436 篇原创文章 · 获赞 126 · 访问量 175万+

猜你喜欢

转载自blog.csdn.net/LostSpeed/article/details/103180543
今日推荐