您现在的位置是:主页 > news > 网站建设深圳/百度app推广方法
网站建设深圳/百度app推广方法
admin2025/6/10 1:50:14【news】
简介网站建设深圳,百度app推广方法,javaweb做网站实现邮件,沈阳医大一医院男科咨询不管什么语言,当然包括C语言,编码问题,都是经常遇到的,经常因为编码问题报错,感觉非常的烦人。 今天,我就遇上了这个错误如下: error : string is not in UTF-8 encoding error : output conv…
网站建设深圳,百度app推广方法,javaweb做网站实现邮件,沈阳医大一医院男科咨询不管什么语言,当然包括C语言,编码问题,都是经常遇到的,经常因为编码问题报错,感觉非常的烦人。
今天,我就遇上了这个错误如下:
error : string is not in UTF-8
encoding error : output conv…
不管什么语言,当然包括C语言,编码问题,都是经常遇到的,经常因为编码问题报错,感觉非常的烦人。
今天,我就遇上了这个错误如下:
error : string is not in UTF-8
encoding error : output conversion failed due to conv error, bytes 0xFF 0xFF 0xFF 0x22
I/O error : encoder error
代码是这样的:
原因就是:我弄了一个结构体:
//*存储平台连接状态
PlatConn g_platConn[10] = {{0, 801, "控制1", "stateCtrl", 0, "stateCtrl1", "stateCtrl1", 1},{0, 802, "控制1", "stateCtrl", 0, "stateCtrl2", "stateCtrl2", 1},
};
就是保存这个结构体的内容到xml文件当中时,就报了上面的错。
一看就是因为字符串未用unicode编码,那就用吧,C++当中怎么用呢:
char a[] = "xxx"; // 鬼知道什么编码,决定的因素太多了
wchar_t b[] = L"xxx"; // 宽字符,但仍然不知道是何编码,比如在VC中为UTF16,而gcc为UTF32
char c[] = u8"I'm a UTF-8 string."; // utf8编码 (假如是C++,那么C++11起为char,C++20起改为char8_t类型)
char16_t d[] = u"This is a UTF-16 string." // UTF-16编码
char32_t e[] = U"This is a UTF-32 string." // UTF-32编码
于是,我的代码改成了这样:
PlatConnStateCtrl g_platConn[10] = {{0, 801, u8"控制1", u8"stateCtrl", 0, u8"stateCtrl1", u8"stateCtrl1", 1},{0, 802, u8"控制1", u8"stateCtrl", 0, u8"stateCtrl2", u8"stateCtrl2", 1},
};
上面的问题就解决了。
问题是解决了,这个问题,也得深入的理解一下。
为什么编码这么重要,因为,其是字符显示的基础,其实质是计算机二进制与字符的一种映射,所以其非常重要,因为,字符我们看上是一样的,由于编码不同,电脑里存储的二进制是不同的,举一个例子,就拿汉字“七”来说,其不同的编码二进制就不同(这里为了方便表示,用了十六进制):
其重要就在这里,不现的编码电脑存储的东西不一样,所以其非常的重要,编程一定要弄清这个问题。