您现在的位置是:主页 > news > 网站建设深圳/百度app推广方法

网站建设深圳/百度app推广方法

admin2025/6/10 1:50:14news

简介网站建设深圳,百度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},
};

上面的问题就解决了。

问题是解决了,这个问题,也得深入的理解一下。

为什么编码这么重要,因为,其是字符显示的基础,其实质是计算机二进制与字符的一种映射,所以其非常重要,因为,字符我们看上是一样的,由于编码不同,电脑里存储的二进制是不同的,举一个例子,就拿汉字“七”来说,其不同的编码二进制就不同(这里为了方便表示,用了十六进制):

 

其重要就在这里,不现的编码电脑存储的东西不一样,所以其非常的重要,编程一定要弄清这个问题。