精华内容
下载资源
问答
  • 本人编写的草蟒(Python中文版)详细教程
  • 草蟒“逗号表”模块介绍及中文命名随想 草蟒是 Python 汉化版中文编程语言。近日,草蟒开发者老吴完成了“逗号表”模块的创建,下面对其加以介绍。 “逗号表”汉化自 csv 模块。csv 直译是“逗号分隔值”,后者直接...

    草蟒“逗号表”模块介绍及中文命名随想

    草蟒是 Python 汉化版中文编程语言。近日,草蟒开发者老吴完成了“逗号表”模块的创建,下面对其加以介绍。

    “逗号表”汉化自 csv 模块。csv 直译是“逗号分隔值”,后者直接作为中文模块名称的话太长,不合适。经考虑,老吴根据其主要特征,将对应的中文模块名确定为“逗号表”。

    该模块与 csv 文件处理有关的主要对象有两个函数(写入官读取官)和两个类(字典写入官字典读取官)。各位看官可能要问:xx官 是什么意思?xx官 对应的英文是 xxer,以前一般译为 xx器,但老吴在汉化过程中感觉这样命名在某些时候不利于编程命名。假设 Python 中有一个 class Translator,如果根据一般的习惯译法,草蟒中对应的类应当叫做“翻译器类”:

    类 翻译器类: …
    翻译器 = 翻译器类() # 实例化

    是不是有点尬?采用新译法:

    类 翻译官: …
    翻译员 = 翻译官()

    新译法的好处是:1. 类名可以减少后缀“类”字;2. 官 与 员 对应,一看便知 xx官 是一个类,而 xx员 是其实例;3. 官-员 的对应很好地模拟了英文中“首字母大写单词表示一个类,相应的小写单词表示其实例”的规则。当然,新译法仅适用于部分动作性类名;对于更多的名词性类名,老吴尚未想到更自然的处理办法。

    言归正传。假设我有一些数据,现在要用 csv 文件保存起来,那么可以这样做:

    导入 逗号表
    
    表头 = ['姓名', '班级', '语文', '数学', '英语', '名次']
    
    学生成绩 = [
        ['张三', 10, 82, 100, 95, 1],
        ['李四', 5, 66, 97, 80, 3],
        ['王五', 8, 93, 88, 90, 2],
    ]
    
    管 打开('学生成绩表.csv','w', 编码='utf8', 换行符='') 为 文:  # 换行符='' 的作用是消除空白行
        写入员 = 逗号表.写入官()
        写入员.写一行(表头)
        写入员.写多行(学生成绩)
    

    结果是生成了一个名为 学生成绩表.csv 的文件,其内容如下:

    姓名,班级,语文,数学,英语,名次
    张三,10,82,100,95,1
    李四,5,66,97,80,3
    王五,8,93,88,90,2

    现在我要读取这些同学的成绩进行处理:

    导入 逗号表
    
    管 打开('学生成绩表.csv', 编码='utf8') 为 文:
        读取员 = 逗号表.读取官()
        取 行 于 读取员:
            如果 读取员.行数 == 1:  # 读取官 的 行数 属性表示已经读取了几行
                无操作             # 第一行是标题行, 忽略
            否则:
                打印(f'{行[1]} 班{行[0]} 月考成绩: 语文 {行[2]}, '
                        f'数学 {行[3]}, 英语 {行[4]}, 排名第 {行[5]}')
    

    输出结果如下:

    10 班张三 月考成绩: 语文 82, 数学 100, 英语 95, 排名第 1
    5 班李四 月考成绩: 语文 66, 数学 97, 英语 80, 排名第 3
    8 班王五 月考成绩: 语文 93, 数学 88, 英语 90, 排名第 2

    现在我要以每行一个字典的方式读出学生信息:

    导入 逗号表
    
    管 打开('学生成绩表.csv', 编码='utf8') 为 文:
        读取员 = 逗号表.字典读取官()
        取 行 于 读取员:
            如果 读取员.行数 == 2:  # 读取第一行数据时, 之前已经处理了表头, 所以行数是 2
                打印(读取员.字段名称)  # 列出所有字段名称
            打印()        # 现在每行以字典形式呈现, 所以下面要以 行[键] 的形式取值
            打印(f"{行['班级']} 班{行['姓名']} 月考成绩: 语文 {行['语文']}, "
                        f"数学 {行['数学']}, 英语 {行['英语']}, 排名第 {行['名次']}")
    

    结果如下:

    [‘姓名’, ‘班级’, ‘语文’, ‘数学’, ‘英语’, ‘名次’]
    {‘姓名’: ‘张三’, ‘班级’: ‘10’, ‘语文’: ‘82’, ‘数学’: ‘100’, ‘英语’: ‘95’, ‘名次’: ‘1’}
    10 班张三 月考成绩: 语文 82, 数学 100, 英语 95, 排名第 1
    {‘姓名’: ‘李四’, ‘班级’: ‘5’, ‘语文’: ‘66’, ‘数学’: ‘97’, ‘英语’: ‘80’, ‘名次’: ‘3’}
    5 班李四 月考成绩: 语文 66, 数学 97, 英语 80, 排名第 3
    {‘姓名’: ‘王五’, ‘班级’: ‘8’, ‘语文’: ‘93’, ‘数学’: ‘88’, ‘英语’: ‘90’, ‘名次’: ‘2’}
    8 班王五 月考成绩: 语文 93, 数学 88, 英语 90, 排名第 2

    现在将字典形式的行信息写入一个新的文件 学生成绩表字典.csv

    导入 逗号表
    
    表头 = ['姓名', '班级', '语文', '数学', '英语', '名次']
    
    学生成绩 = [
        {'姓名': '张三', '班级': '10', '语文': '82', 
            '数学': '100', '英语': '95', '名次': '1'},
        {'姓名': '李四', '班级': '5', '语文': '66', 
            '数学': '97', '英语': '80', '名次': '3'},
        {'姓名': '王五', '班级': '8', '语文': '93', 
            '数学': '88', '英语': '90', '名次': '2'}
    ]
    
    管 打开('学生成绩表字典.csv','w', 编码='utf8', 换行符='') 为 文:
        写入员 = 逗号表.字典写入官(, 表头)  # 必须提供 字段名称 参数值, 在本例中即 表头
        写入员.写表头()
        写入员.写多行(学生成绩)
    

    写入文件的结果与 学生成绩表.csv 相同。

    “逗号表”模块还有一个重要的属性容器类——方言类,其属性包括:定界符引号字符转义符双引号跳过初始空白行结束符加引号。你可以继承此类或其已有子类(比如 excel),创建自己的方言,从而实现 csv 格式的自定义。例如:

    导入 逗号表
    
    类 我的方言(逗号表.方言类):
        定界符 = '|'
        引号字符 = '='
        行结束符 = '\r'
        加引号 = 逗号表.非数字加引号啊  # xx啊 是什么鬼? 
    
    逗号表.注册方言('川普', 我的方言)
    
    表头 = ['姓名', '班级', '语文', '数学', '英语', '名次']
    
    学生成绩 = [
        ['张三', 10, 82, 100, 95, 1],
        ['李四', 5, 66, 97, 80, 3],
        ['王五', 8, 93, 88, 90, 2],
    ]
    
    管 打开('学生成绩表方言版.csv','w', 编码='utf8', 换行符='') 为 文:
        写入员 = 逗号表.写入官(, 方言='川普')
        写入员.写一行(表头)
        写入员.写多行(学生成绩)
    

    学生成绩表方言版.csv 的内容如下:

    =姓名=|=班级=|=语文=|=数学=|=英语=|=名次=
    =张三=|10|82|100|95|1
    =李四=|5|66|97|80|3
    =王五=|8|93|88|90|2

    读取的时候也要使用相同的方言,否则鸡同鸭讲,不知所云。

    管 打开('学生成绩表方言版.csv','r', 编码='utf8') 为 文:
        读取员 = 逗号表.读取官(, 方言='川普')
        取 行 于 读取员:
            打印()
    

    结果如下:

    [‘姓名’, ‘班级’, ‘语文’, ‘数学’, ‘英语’, ‘名次’]
    [‘张三’, 10.0, 82.0, 100.0, 95.0, 1.0]
    [‘李四’, 5.0, 66.0, 97.0, 80.0, 3.0]
    [‘王五’, 8.0, 93.0, 88.0, 90.0, 2.0]

    在上面的代码中,方言类的“加引号”属性有四个值可以选取:最少引号啊全部加引号啊非数字加引号啊不加引号啊。各位看官可能好奇,编程又不是作诗,啊什么啊?在草蟒中,以“啊”结尾的名称表示一个常量,对应 python 中的全大写常量,比如:非数字加引号啊 = QUOTE_NONNUMERIC。这个啊字,在汉语中是表示强调的虚词,加啊的特殊名称与不加啊的一般名称相区分,很好地模拟了英文全大写常量与一般变量的区别,可谓异曲同工。另外,这些“啊”字是不是也让代码变得更有温度?

    另外,英文编程中一个单词的多种缩写形式让编程命名显得非常灵活,中文编程在这方面似乎不行。真的不行吗?老吴认为非也,不过我们要反其道而行,增字而不是缩字。

    l = ['grasspy', 'python', 'good', 'yes']
    lst = ['oh', 'ye']
    li = ['ok', 'bye']
    
    # 中文编程
    列表哦 = ['草蟒', '中文编程', '语言']
    列表哈 = ['草蟒', '易语言']
    列表啦 = ['你好', '再见']
    

    以上就是老吴的提议:通过增加 等极易敲出的虚词来极大增强中文命名的灵活性。

    由此可以看出,只要开动脑筋,英文编程的优点完全可以在中文中创造出来。

    注意:“逗号表”模块尚未并入草蟒官网发行版中,预计将在春节前并入,敬请关注!

    展开全文
  • 它是一个Python3 汉化版——草蟒(作者为 @buddy hello)的一部分,其中的第三方库对 Python3 英文版也适用。下面节选自 pypi 简介: 英文版 python 用户能够充分体验中文编程的 模块有<海龟 (turtle)>、<...

    祝贺新中文 API 发布到 Python 库平台 pypi。它是一个Python3 汉化版——草蟒(作者为 @buddy hello)的一部分,其中的第三方库对 Python3 英文版也适用。下面节选自 pypi 简介

    英文版 python 用户能够充分体验中文编程的 模块有<海龟 (turtle)>、<随机数 (random)>和<图快 (tkinter)>。

    下面就在英文 Python 3.8.1 下对这个第三方库试用一二。

    海龟(turtle)

    参考官网入门文档中的画五角星演示,只将官网例程的中文关键字改为了英文的:

    from 海龟 import *
    
    颜色('黄色', '红色')
    开始填充()
    
    for i in range(5):
        前进(200)
        右转(144)
    
    结束填充()
    完成()
    

    使用中英 API 的代码对比如下:

    在这里插入图片描述

    代码可读性看官自断,不用多说。

    视觉效果上,如在代码中进行中文命名(类/变量/方法等)的优势中所提,中文的更加齐整。

    图快(tkinter)

    参考官网入门文档中的示例 16的英文关键字版:

    import 图快
    
    窗口 = 图快.主窗口类()
    窗口.标题('图形应用程序')
    窗口.尺寸('500x300+600+300')
    
    def 登录():
        登录窗口 = 图快.顶级窗口类(窗口)
        登录窗口.标题('请登录...')
        登录窗口.尺寸('200x200+750+350')
    
    登录按钮 = 图快.按钮类(文本='登录', 命令=登录)
    登录按钮.位置布局(相对x=0.5, 相对y=0.5)
    
    窗口.主循环()
    

    中英 API 代码对比:

    在这里插入图片描述

    API 的命名有些讲究。“类”后缀的思路与前文的“方法一”一致。参数命名也完成了汉化。

    很值得一提的是,某些命名不拘泥于直译,而是从功能出发进行改进,比如Toplevel功能:

    Toplevel widgets work as windows that are directly managed by the window manager. They do not necessarily have a parent widget on top of them.

    既然功能就是窗口,命名为顶级窗口类更加一目了然。类似这样将功能本质和中文特性结合的命名风格探索对于中文 API 的发展会很有助益(另参考前文末尾)。

    VS Code 支持

    使用微软的 Python 插件,在 Windows 下测试。可以看到中文文档:

    在这里插入图片描述

    输入中文 API 的第一个字有自动补全弹窗,包括对应说明:

    在这里插入图片描述

    草蟒

    这些第三方库之外,草蟒还实现了 Python 关键字和几个核心库的汉化,并开发了允许中文标点符号等等功能的 VSC 插件,有兴趣的不妨一试

    始于足下

    这个中文 API 是周蟒之后个人看到的,发布在英文编程语言的第三方库平台的最大规模的中文库项目。
    对于內建中文文档、中文API命名、打包发布等等技术细节都进行了较全面验证。期待库的文档、测试等等早日跟上。

    拭目以待!

    展开全文
  • 草蟒是基于 Python 的全中文编程语言。示例 1:# 截至 n 的斐波那契数列>>> 函 斐波那契数列(n):>>> a, b = 0, 1>>> 只要 a < n:>>> 打印(a, 结尾=' ')>>> a, b = b, a+b>>> 打印()>>> 斐波那契数列(1000)0 1 1 2 3 ...

    草蟒是基于 Python 的全中文编程语言。

    示例 1:

    # 截至 n 的斐波那契数列

    >>> 函 斐波那契数列(n):

    >>> a, b = 0, 1

    >>> 只要 a < n:

    >>> 打印(a, 结尾=' ')

    >>> a, b = b, a+b

    >>> 打印()

    >>> 斐波那契数列(1000)

    0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

    示例 2:

    # 列表的“取”循环

    >>> 数表 = [2, 4, 6, 8]

    >>> 乘积 = 1

    >>> 取 数字 于 数表:

    ... 乘积 = 乘积 * 数字

    ...

    >>> 打印('乘积为:', 乘积)

    乘积为: 384

    示例 3:

    # '列表' 和 '枚举' 函数

    >>> 水果 = ['香蕉', '苹果']

    >>> 水果.追加('梨')

    >>> 列表(枚举(水果))

    [(0, '香蕉'), (1, '苹果'), (2, '梨')]

    开发草蟒的目的是消除英语门槛,提供一种简单自然、易学易用、功能强大、应用广泛的中文编程语言,让普通国人能自由地使用母语进行编程。

    草蟒完全保留了原 Python 的运行逻辑,仅增加了必要的汉化处理,故完全支持原 Python 英文编程和程序。

    当前汉化版本基于 Python 3.8.0,已完成常用内置模块、标准模块及少量第三方模块的汉化,详见草蟒官网。

    草蟒推荐 IDE 为 VS Code + 定制 Python 插件。另外还开发了一个简单的标点符号转换插件,安装后在 IDE 中编程时无需来回切换中英文输入法。

    希望更多有识之士投入中文编程语言开发工作,打造强大独特的中文编程生态。

    展开全文
  • 作为 Python 汉化版,草蟒当然会及时跟进。 Python新版本的最大变化之一是用 基于PEG的新解析器替代了原来的 LL(1)。据称新解析器的性能与旧解析器大致相当,但PEG在设计新语言特性时的形式化比LL(1)更灵活,Python...

    Python 3.9.0 已发布一月有余。作为 Python 汉化版,草蟒当然会及时跟进。

    Python 新版本的最大变化之一是用 基于 PEG 的新解析器替代了原来的 LL(1)。据称 新解析器的性能与旧解析器大致相当,但 PEG 在设计新语言特性时的形式化比 LL(1) 更灵活,Python 3.10 及之后版本将开始使用这种灵活性。

    由于采用了新解析器,关键字(保留字)的添加(汉化)自然与之前的版本有所不同。下面是详细步骤和踩坑记录。

    老吴使用的系统和工具:Windows 10,Windows Terminal(非必需,但强烈推荐使用),Visual Studio 2019 免费版,WSL + gcc 10.1。

    很多人学习python,不知道从何学起。

    很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

    很多已经做案例的人,却不知道如何去学习更加高深的知识。

    那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤

    QQ群:1057034340

    1.  从 Python 官方网站下载 3.9.0 版本源代码。
    2. 打开 Windows Terminal,在 PowerShell 中 cd 到 PCbuild 目录。按照 ./PCbuild/readme.txt 中的说明,首先运行 build.bat。正式 build 之前会下载所需的外部依赖,源代码目录会多出一个文件夹 externals. 结果是成功 build 出一个 32 位 python.exe。
    3. 打开 /Grammar/python.gram 文件,添加中文保留字。作为试验,笔者仅添加了一个保留字 '函',对应英文的 'def'。语法文件中有三个出现 'def' 的地方需要添加 '函'。
      | &('def' | '函' | '@' | ASYNC) function_def
      ......
          | ('def' | '函') n=NAME '(' params=[params] ')' a=['->' z=expression { z }] ':' tc=[func_type_comment] b=block {
      ......
          | ASYNC ('def' | '函') n=NAME '(' params=[params] ')' a=['->' z=expression { z }] ':' tc=[func_type_comment] b=block {

       

    4. 从 Windows Terminal 打开 WSL,cd 到源代码目录,运行 ./configure。
    5. 按照 Changing CPython's Grammar  第 24 节的说明,在 WSL 中运行 make regen-pgen 以生成 Parser/parser.c。这里出现了第一个坑,提示不认识 ':=' 这个符号。这是 海象运算符, Python 3.8 才引入的,我的 WSL 默认 python3 版本较低,所以需要给这个 make 命令加一个参数 PYTHON_FOR_REGEN=python3.8(这个参数值依具体情况而定,前提当然是已经安装了 python 3.8.x)。
    6. 加上参数后运行上述 make 命令,仍然提示错误:AssertionError: '函' is not a know literal,这是第二个坑。搜索这个错误信息,找到一个文件  Tools/peg_generator/pegen/c_generator.py,发现出错地方上面有个 re.match(r"[a-zA-Z_]\w*\Z", val),怪不得,改成 re.match(r"[a-zA-Z_\u4e00-\u9fa5]\w*\Z", val) 以使它能匹配中文。再次 make,成功生成 parser.c。
    7. 在 VS 2019 中打开 pcbuild.sln。根据之前的汉化经验,现在包含汉字的 parser.c 这个文件的编译命令须加上 /utf-8。设置好编译目标后,点击 pythoncore 这个项目,重新生成,成功得到 python39.dll。
    8. 双击打开 PCbuild/win32 目录中 python.exe,用 '函' 写一个函数并运行,结果并不像预期的那样成功执行,而是提示语法错误。这个坑耗费老吴半天时间才解决。那么,问题出在哪里呢?在上述步骤中,只有 parser.c 这个文件发生了改变,应该还是这个文件的问题。但打开看看,'函' 已被当作关键字处理,似乎没什么问题。
      static KeywordToken *reserved_keywords[] = {
          (KeywordToken[]) {{NULL, -1}},
          (KeywordToken[]) {
              {"函", 532},
              {NULL, -1},
          },
          (KeywordToken[]) {
              {"if", 510},
              {"in", 518},
              {"as", 520},
              {"is", 526},
              {"or", 533},
              {NULL, -1},
          },
          (KeywordToken[]) {
              {"del", 503},
              {"try", 511},
              {"for", 517},
              {"not", 525},
              {"def", 531},
              {"and", 534},

       

    9. 为了查清问题所在,老吴想到先不忙着添加中文关键字,而是添加英文关键字,比如给 def 取个别名 fn,看成不成。重复上述步骤,结果是成功。相应的 parser.c 的前几行如下:
      static KeywordToken *reserved_keywords[] = {
          (KeywordToken[]) {{NULL, -1}},
          (KeywordToken[]) {
              {NULL, -1},
          },
          (KeywordToken[]) {
              {"if", 510},
              {"in", 518},
              {"as", 520},
              {"is", 526},
              {"fn", 532},
              {"or", 533},
              {NULL, -1},
          },
          (KeywordToken[]) {
              {"del", 503},
              {"try", 511},
              {"for", 517},
              {"not", 525},
              {"def", 531},
              {"and", 534},

       

    10. 比较上述两段代码,细心的读者应该已经知道答案啦。这里先卖个关子,答案过几天在评论里揭晓   (>‿◠)

    保留字的完整汉化还涉及到 ast、tokenizer 等的修改。老吴瞄了一眼,这部分的修改应该与草蟒 380 的汉化大致相同。草蟒 39x 已排上日程。

    老吴尚未在 WSL 中编译添加了中文保留字的 python,但相信没问题。

    草蟒(Python 汉化版)中文编程语言旨在给编程“去魅”,让普通人也能亲近编程、喜欢编程,借助编程这个强大的工具给自己的工作和生活带来便利,例如随心所欲地操纵 excel 表格和数据,再也不用去记忆和编写极不人道的 excel 函数(更不用说 VBA,连他亲爹微软都不要了)。

    展开全文
  • 2008-03-11 09:37:50
    海底上长着巨大的植物,一人多高的和类似棕榈的树,它们的每一片叶子上都附有亮晶晶的贝壳。  最后小鱼发现下面有一条长长的黑条,于是它向它游去。但是这既不是鱼,也不是电缆,而是一艘沉下的大船的栏杆。因为...
  • 可调用 Python 库,比如草蟒项目的中文库“图快”(基于 tkinter): 运行源码文件有错时反馈中文信息: 在交互开发环境使用中文命令: 顺便用快速排序算法练手: 更多详情见“木兰编程语言” VS Code 插件。上...
  • 如何汉化并编译 Python 源代码

    千次阅读 2019-11-12 07:47:50
    因觉得中文编程乃大势所趋,遂入了 Python 汉化(我称之为“草蟒”项目)的坑。笔者孤陋寡闻,刚开始汉化的时候只知道 GCC 且 GCC 不支持中文,所以没有选择汉化源代码的方式,而是采用替换式表层汉化方...
  • 草蟒(Python 汉化版中文编程语言)对 python os 模块的汉化成果——“操作系统”模块(以 Windows 部分为主)已于今日完成,不久就会整合到草蟒 3.8.0 一月发行版中。 令人高兴的是,python 官网的中文文档做得...
  • 睡觉排序大法

    2021-01-05 10:30:25
    睡觉排序大法 - 用草蟒实现 近日,排序算法界冒出一个终极大法,缺觉少睡的程序猿只要睡睡觉,工作就完成了,是谓“睡觉排序大法”。 下面就是老吴用草蟒——Python 汉化版中文编程语言——实现的睡觉排序: 导入 ...
  • 结果:('胡萝卜', '大白菜', '大萝卜', '', '果冻') ''' (8-2) def chi(* food): print (food) lst =[ ' 胡萝卜 ' , ' 大白菜 ' , ' 大萝卜 ' , ' ' , ' 果冻 ' ] for el in lst: chi(el) ''...
  • #PythonDraw.py import turtle turtle.setup(650,350,200,200)#(width,height,startx,starty)设置绘图窗体 turtle.penup()#抬起画笔,海龟轨迹不出现在画布上 turtle.fd(-250)#让海龟向前爬行 ...
  • VS Code 中文标点符号自动更改 ...在此感谢作者草蟒老吴!autopunc: VS Code 插件,用于在中文输入法下将用户输入的中文标点符号自动更改为英文标点符号,省去按 shift 键的麻烦,对中文编程特别方便。 (gitee.com) ...
  • 用 VS Code 插件高亮,调用了草蟒库: 为木兰语言编写的在线开发环境原型的后端也用木兰编写,使用 Python 框架 tornado: 部分报错信息中文化: 用木兰改写了 Python 入门书籍的文字冒险游戏例程: 借助 Pygame...
  • 调用现有 Python 库如草蟒:using 类型:type 函数:func 流程控制:print中文报错信息上述基本功能之外,对部分报错信息进行了加工,使之更易懂好读。比如下面的死递归:func 运行报错信息如下:(..又如此段代码:...
  • 调用现有 Python 库如草蟒: using * in 海龟 颜色("黄色", "红色") 开始填充() for 拐数 in 0..4 { 前进(200) 右转(144) } 结束填充() 主循环() 类型: type Animal { func getName() { return 1 } } type ...
  • 运行:
  •  “咦,这是,运气不错,这可是炼制融气丹的主药,没想到居然有如此一大片!”许晋兴奋的望着前方一片艳红的药草。  “?这不是毒草吗?”冯正也看到了前方那片艳红的药草,心下却是十分诧异,这些...
  • 注意:下面这两段是代理区。即第1——16平面的间接表示,四个字节的汉字就在这里表示 D800-DBFF:High-half zone of UTF-16 DC00-DFFF:Low-half zone of UTF-16 本篇中包含了所有常用汉字27973个,剩余汉字使用...
  • 汉字编码之GBK编码(附完整码表)

    万次阅读 多人点赞 2016-03-04 12:21:24
    继续字符编码的学习。今天介绍一下GBK(汉字内码扩展规范),GB 2312 GB18030。引用网友的话可以概括一下: GBK和UTF8的区别:GBK就是在保存你的帖子的时候,一个汉字占用两个字节。。外国人看会出现乱码,此为我中华...
  • UTF-8编码表

    万次阅读 2017-05-04 14:40:10
    UTF,是UnicodeTransformation Format的缩写,意为Unicode转换格式。UTF-8是UNICODE的一种变长字符编码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 974
精华内容 389
关键字:

草蟒