• 三味
    2019-12-20
    这两天写玩具代码, 环境就是win10, vs2017, 写控制台. 我源代码是utf8无bom格式. 什么都好, 就是用fgets获取输入, 无法获取中文字符串... 折腾好久... 最后还是都改成了ansi... ansi这个诡异的名字确实值得吐槽啊...明明就是GBK... 字符编码真是太麻烦了...

    作者回复: ANSI 是指 Windows 的传统系统编码。源代码中如果含中文,必须用 UTF-8 + BOM 保存(专栏中说过的)。

    
     1
  • 天天
    2020-02-05
    1. utf32字节数固定支持随机访问字符,其他2个则需要遍历前面的字节,经过计算才能解出第N个字符
    3. 要看具体存储的是啥字符, 英文utf8省空间, 中文utf16

    作者回复: OK,1、3 的回答都没什么问题。👍

    
    
  • 晴朗
    2019-12-25
    找到一个对字符编码讲解很详细的系列文章
    https://www.cnblogs.com/benbenalin/tag/Unicode/
    
    
  • hello world
    2019-12-21
    唉,一直对这个字符编码不太感冒

    作者回复: 理解透了,也没有多复杂。比编程简单多了。

    
    
  • _呱太_
    2019-12-21
    老师好!能不能提前透露一下单元测试库是用的哪个库啊,最近在看 TDD,想上手一下,感觉现在最缺的也是测试方面的能力。

    作者回复: 我考虑讲的是 Boost.Test 和 Catch2。

    
    
  • LiKui
    2019-12-20
    通过BOM判断文件编码方式:
    如果文件开头是0x0000 FEFF,则是UTF-32 BE方式编码
    如果文件开头是0xFFFE 0000,则是UTF-32 LE方式编码
    如果文件开头是0xFFFE,则是UTF-16 LE的方式编码
    如果文件开头是0xFEFF,则是UTF-16 BE的方式编码
    如果文件开头是0xEF BB BF,则是UTF-8方式编码
    否则编码方式使用其它算法确定
    展开
    
    
  • chado
    2019-12-20
    1.每个字符的字节数固定,可能需要判断的就是一个大小端的问题
    2.有些表情符号(如emoji),会使用两个字符来产生,增加了可见字符的判断
    3.utf-8是最省空间的编码方式,每个编码只用到需要最少的字节数

    作者回复: 1. 部分正确。处理过程中(读入文件后)连大小端都不会考虑的。
    2. 不是。Emoji 在 UTF-32 里仍然是一个字符。
    3. 不对。再想想。

     2
    
我们在线,来聊聊吧