关于字符编码的问题,求教。
假设有一个字符串,char a[] = "字符串abc";
那么能不能对这各字符串使用strlen函数?
即,如果字符串中带有中文,那么这个中文字符的两个字节中会不会包括普通字符的值?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
假设有一个字符串,char a[] = "字符串abc";
那么能不能对这各字符串使用strlen函数?
即,如果字符串中带有中文,那么这个中文字符的两个字节中会不会包括普通字符的值?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
中文字符串在编码的时候,也有采用不同格式,就比方“字符串” 这三个字的GB2312 ,UTF8 各自的编码并不相同(也有可能值是相同,但是一般两种编码的字库并不相同) 你看到的这个中文字符串只是在某种特定解码情况下的显示,当采用不同解码显示的时候,尽管字符串的值不变,但是会根据字库文件中相对应的值来显示某一中文字 如果对应的解码关系不同,就会出现乱码,所以你可能需要考虑不同解码情况下的情形,如果你希望所有解码多能正确地显示,可能需要把所有的编码字符串全部输入进去,然后根据解码,再显示相应部分
这个不用担心吧,系统自会支持它的
关键是这些中文字符的字节中,会不会出现普通字符的数值(0-127)
当然可以 strlen 了. 如 GBK 的 "你好" = 4 byte
UTF-8 的 "你好" 可能是 6 byte