V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
XingWu
V2EX  ›  JavaScript

不懂就问: png 格式图片转成 jpeg,到底算什么类型的图片

  •  1
     
  •   XingWu · 2020-10-11 18:56:23 +08:00 · 6744 次点击
    这是一个创建于 415 天前的主题,其中的信息可能已经有所发展或是发生改变。

    众所周知,jpeg 的图片不能有透明背景色

    那我要是将一张透明背景色的 png,修改为 jpeg 后缀,打开仍然是透明的,它算什么格式呢?

    73 条回复    2020-11-26 18:44:22 +08:00
    dzdh
        1
    dzdh   2020-10-11 18:58:42 +08:00   ❤️ 2
    emmmm.....

    你用记事本打开,看前几个字符 。。


    后缀本身就没什么意义
    rmb1222
        2
    rmb1222   2020-10-11 18:58:45 +08:00 via Android   ❤️ 10
    png,能打开是因为图片浏览器并不是依靠文件后缀名来区别格式
    xiri
        3
    xiri   2020-10-11 19:01:23 +08:00 via Android
    后缀只是为了方便人区分才加上去的,是文件名的一部分,并不决定文件类型
    xiri
        4
    xiri   2020-10-11 19:03:51 +08:00 via Android
    @xiri 都是被 windows 惯的,用过 linux 或者其他类 unix 系统的话就不会问出这种问题了
    waterThing
        5
    waterThing   2020-10-11 19:05:39 +08:00
    改名不能算`转`吧,就像一个男人改名字改成秋香,听起来是女的,本质上还是男的,所以算是后缀错误的 png 图片。
    felixcode
        6
    felixcode   2020-10-11 19:26:01 +08:00 via Android   ❤️ 29
    后缀改成 mp4,看看能不能动起来
    ho121
        7
    ho121   2020-10-11 19:26:38 +08:00 via Android
    你把 png 改成 mp4,就能动了?
    littlewing
        8
    littlewing   2020-10-11 19:27:59 +08:00   ❤️ 2
    JavaScript 版居然还有人问这种问题
    intellectual
        9
    intellectual   2020-10-11 19:31:45 +08:00
    本身都是位图。
    png 默认不压缩画质,jpg 默认可压缩画质。
    当然,你也可以把压缩后的 jpg 转成 png,但损伤的过程是不可逆的。。。

    你就老老实实根据人家原理干,别强制把 png 后缀改成 jpg 后缀,虽然软件容错可以打开且透明,但意义何在?
    Mutoo
        10
    Mutoo   2020-10-11 19:31:46 +08:00   ❤️ 1
    $ file wallpaper.jpg
    wallpaper.png: PNG image data, 1280 x 1024, 8-bit/color RGBA, non-interlaced
    px920906
        11
    px920906   2020-10-11 19:33:08 +08:00   ❤️ 8
    想起了另一个神操作:通过拷贝快捷方式安装程序
    不知道是真小白还是钓鱼
    vhysug01
        12
    vhysug01   2020-10-11 19:47:54 +08:00
    每种文件类型都有自己的编码格式呀,图片查看软件应该做了一层兼容
    user8341
        13
    user8341   2020-10-11 19:48:19 +08:00   ❤️ 1
    是操作系统功能太不人性化,不能领会用户改文件后缀就是要转换文件类型。
    hello2060
        14
    hello2060   2020-10-11 19:49:17 +08:00 via iPhone
    @waterThing 😂我服了你了
    watzds
        15
    watzds   2020-10-11 19:50:07 +08:00 via Android   ❤️ 1
    我考考你,.js 文件改成.java,会怎么样?
    microka
        16
    microka   2020-10-11 20:02:15 +08:00
    看楼主也算是位「程序员」吧?把文件后缀改改就等于格式转换? excuse me?
    AX5N
        17
    AX5N   2020-10-11 20:19:17 +08:00
    这是一个有趣的知识点,有趣的地方在于恰好有一部分人懂,又有一部分人不懂。大多数人都不知道打开一个文件所经历的过程,但有的人就是能强行猜出背后逻辑的大概,有的人就一脸懵逼。还有一个有趣的地方就是,这类知识从来没人教。
    AX5N
        18
    AX5N   2020-10-11 20:20:20 +08:00   ❤️ 6
    这是一个有趣的知识点,有趣的地方在于这类知识从来没人教,但恰好有一部分人懂,又有一部分人不懂。大多数人都不知道打开一个文件所经历的过程,但有的人就是能强行猜出背后逻辑的大概,有的人就一脸懵逼。

    改了下行文
    em70
        19
    em70   2020-10-11 20:24:59 +08:00
    好的图像软件都会不信任后缀,会根据文件头来判断文件格式,早期的 PS 如果把 PNG 改成 jpg 就打不开,就因为那时候 PS 按后缀去解析当然出错了,现在已经不这样了
    xupefei
        20
    xupefei   2020-10-11 21:01:00 +08:00 via iPhone   ❤️ 1
    ETiV
        21
    ETiV   2020-10-11 21:18:09 +08:00
    应该是被使用 Windows 的惯性带下来的?

    文件扩展名 != 文件数据的表达
    JerryCha
        22
    JerryCha   2020-10-11 21:40:58 +08:00
    你不会以为 jpeg 存的是 rgb 数据吧
    deplives
        23
    deplives   2020-10-11 21:58:49 +08:00
    所以你以为改个文件后缀就能发明一个新的文件格式了
    ysc3839
        24
    ysc3839   2020-10-12 00:34:12 +08:00   ❤️ 3
    @xiri 后缀不仅仅是给人看的也是给部分程序看的。
    除了 Windows,一些 Linux 的桌面环境,以及 Android 、macOS 也会通过文件后缀来区分文件类型,不见得所有类 Unix 系统都是通过读取文件内容来区分文件类型的。

    而且读取文件内容来区分文件类型并不是一个很好的设计。设想一下你在网络不好的情况下挂载了个远程文件系统,然后文件管理器给你把每个文件都读一遍来显示文件类型,你必须等半天等它读完,这是个好设计吗?
    widewing
        25
    widewing   2020-10-12 01:08:36 +08:00 via Android   ❤️ 2
    @px920906 哈哈哈当年用软盘拷了一堆游戏回来后就在纳闷怎么打不开。。
    vk42
        26
    vk42   2020-10-12 01:54:09 +08:00
    lz 重新定义了“转格式”
    crab
        27
    crab   2020-10-12 02:50:19 +08:00
    文件类型,文件扩展名的区别。这种拉入看下 16 进制头部。
    KasuganoSoras
        28
    KasuganoSoras   2020-10-12 04:14:23 +08:00   ❤️ 1
    男的穿上了女装就变成女人了?
    虽然你看起来他是个女人,但是实际上他还是男的(
    xiadong1994
        29
    xiadong1994   2020-10-12 04:26:21 +08:00
    @ysc3839 所以文件类型是写在文件最开始的……
    vmebeh
        30
    vmebeh   2020-10-12 07:53:45 +08:00 via iPhone
    jinliming2
        31
    jinliming2   2020-10-12 08:36:32 +08:00   ❤️ 1
    @ysc3839
    > 除了 Windows,一些 Linux 的桌面环境,以及 Android 、macOS 也会通过文件后缀来区分文件类型,不见得所有类 Unix 系统都是通过读取文件内容来区分文件类型的。
    这句不对,这些系统并不是根据后缀拓展名来区分文件类型的,而是根据扩展名来决定 [使用什么程序来处理这个文件] ,相当于给文件进行一个不强制的分类而已。比如看到 .aaa 后缀就交给 A 程序处理,看到 .bbb 后缀就交给 B 程序处理。
    windows 下也是如此,正如 @AX5N #17 #18 说的那样,这类知识没人教,所以很多人认为 Windows 下是通过扩展名来识别文件类型的。其实不是,Windows 也仅仅是根据扩展名来决定使用哪个程序来处理这类文件而已。

    > 而且读取文件内容来区分文件类型并不是一个很好的设计。
    是不是一个好的设计我不知道,但至少现在几乎所有程序都是根据文件内容来区分文件类型的,区分的方法是判断“文件头”,也就是文件开头的几个字节是什么。
    而通过文件扩展名来识别文件类型却并不可靠,比如 @em70 #19 说的早期 PS 如果图片扩展名不对就打不开。并且现在网上有好多的图片文件扩展名也都不对,网络上一般通过 Content-Type 中的 MIME 信息来标识文件的处理方式,比如是图片还是视频,还是要求下载。所以网络上的图片很大一部分都是没有扩展名的,这就导致你右键另存为之后文件没有后缀而打不开。
    (当然,这里很多人会不管图片具体是什么格式而直接将扩展名改成 .jpg 或者 .png ,告诉系统这是张图片,用图片查看器打开就行,图片查看器通常不会管你的拓展名是啥,而是根据文件内容的前几个字节来判断文件类型进行解析渲染)
    HenryWang0723
        32
    HenryWang0723   2020-10-12 09:21:07 +08:00
    改后缀不算转格式吧
    idtaanlcoe
        33
    idtaanlcoe   2020-10-12 09:38:09 +08:00 via Android
    依然是 png 格式,改后缀不会影响编码,打开的时候依然是 png 编码解析出来
    12101111
        34
    12101111   2020-10-12 09:40:46 +08:00
    有一些格式具有相同的扩展名,但是却有不同的版本(比如 rar 和 rar5)
    有一些格式具有相同的扩展名,但是扩展名只是对应一个容器,具体的编码方式存储在容器内部(比如 mp4 和 webp 是容器格式, H.264 H.265 vp9 是编码方式)
    azcvcza
        35
    azcvcza   2020-10-12 09:45:42 +08:00
    小时候我看电脑里一大堆莫名其妙的后缀,就猜要根据前几个位置的标志来做区分读写。.jpeg 和.png 如果标志位都一样,那读取器应该不会读取失败,顶多是某些格式必要信息是空的
    guochao
        36
    guochao   2020-10-12 09:48:27 +08:00   ❤️ 1
    拓展名只是为了方便人阅读,以及一部分程序员偷懒,所创作出的文件命名方式,本身并不决定文件的类型。改名并不会影响文件本身的格式,格式和协议是说数据构成的方式,但是可能会改变一些程序默认的处理文件的方式。

    换个说法,你有一本射雕英雄传.武侠小说,包了个书皮上面写数学.学习资料,那么这份资料究竟是武侠小说呢,还是学习资料呢?显然换了个名字并不影响本身的内容,但是会让管理员本来要把小说放到小说区,结果一看书皮是学习资料就放到了教辅区。但是同学打开这本书,如果认得是武侠小说,就会在看小说的时候打开,如果不认识这本小说,轻则扔到一遍重则走火入魔
    ccbikai
        37
    ccbikai   2020-10-12 09:52:06 +08:00
    后缀只是给人读的,机器读的时候不关注后缀
    idou
        38
    idou   2020-10-12 09:53:17 +08:00
    @px920906 #11 这操作神了
    crella
        39
    crella   2020-10-12 09:55:54 +08:00 via Android
    这样用 irfanview 打开的时候就会提示是使用了错误后缀的 png 文件了
    zhuweiyou
        40
    zhuweiyou   2020-10-12 10:06:29 +08:00
    改后缀 不等于改格式
    Leonard
        41
    Leonard   2020-10-12 10:07:40 +08:00
    直接改名不算转
    guochao
        42
    guochao   2020-10-12 10:12:46 +08:00
    发烧了隔离着,脑子不大好使,丢三落四的。重发一下

    拓展名只是为了方便人阅读,以及一部分程序员和程序偷懒,所创作出的文件命名方式,本身并不决定文件的类型。改名并不会影响文件本身的格式,格式和协议是说数据构成的方式,但是改文件名可能会改变一些程序默认的处理文件的方式。偷懒并不是说有什么不好,而是各种因素限制我们不得不用简单的办法处理。

    换个说法,你有一本射雕英雄传.武侠小说,包了个书皮上面写数学.学习资料,那么这份资料究竟是武侠小说呢,还是学习资料呢?显然换了个名字并不影响本身的内容,但是会让管理员本来要把小说放到小说区,结果一看书皮是学习资料就放到了教辅区。但是同学打开这本书,如果认得是武侠小说,就会在看小说的时候打开,如果不认识这本小说,轻则扔到一遍重则走火入魔
    geelaw
        43
    geelaw   2020-10-12 10:18:28 +08:00   ❤️ 7
    区分三个概念:

    - 识别文件处理程序的机制
    - 文件格式
    - 文件类型

    “机制”在 Windows 世界里即 MIME 类型和扩展名,“格式”是通用、良定义概念,即所有有效文件内容构成的集合,楼主的问题在于不理解或者不能形成“类型”的良定义,且会混淆“格式”和“类型”的概念。

    可以如此定义:文件是“A 类型”当且仅当它是 A 格式且具有正确识别 A 的处理程序的机制。

    那么在 Windows 里,把磁盘上有效的 PNG 类型文件的扩展名改为 .jpg ,那么该文件仍然是 PNG 格式,但不再具有正确的识别机制,从而不是有效的 PNG 类型的文件,由于 PNG 格式和 JPEG 格式不相交,也可以推断该文件不是有效的 JPEG 格式的文件,从而也不可能是有效的 JPEG 类型的文件。

    再举一个例子:考虑修改有效的 C++ 源代码类型的文件的扩展名为 .txt ,由于文本格式是 C++ 源代码格式的超集,可以判断修改后的文件仍然是有效的文本类型的文件,且仍然是有效的 C++ 源代码格式的文件,但不再是有效的 C++ 源代码类型的文件。

    再举一个例子:考虑一个不使用扩展名和 MIME 类型的系统,在这个系统里修改扩展名不会对格式和类型产生任何影响。

    @jinliming2 #31 在几乎所有现实的系统中,读取文件名比文件内容的前几个字节效率都要高很多倍。如果文件类型需要在 UI 上有所反映(例如不同类型的文件可以有不同的操作,而不仅仅是“打开”一个操作,或者不同类型的文件需要使用不同的图标等),那么通过文件内容识别绝对是糟糕透顶的设计。
    另外几乎所有值得使用的浏览器都会在另存为的时候自动识别 MIME 类型并通过文件关联查询 MIME 类型对应的扩展名,然后帮用户加上。
    XingWu
        44
    XingWu   2020-10-12 10:28:14 +08:00
    感谢各位大大给的回应

    其实是因为一个需求引发的我这个问题。一张图片转的 base64,不带头,我不知道原格式。但是 img 标签我加上任意头的格式都能展示这个图片并下载为对应格式,因此引发了我这个问题。

    大概了解了,拓展名只是为了方便人阅读,改名并不会影响文件本身的格式,格式和协议是说数据构成的方式。 @guochao

    感谢各位老哥
    XingWu
        45
    XingWu   2020-10-12 10:29:30 +08:00
    @Mutoo 谢谢老哥,原来可以这样查看图片格式
    NoirStrike
        46
    NoirStrike   2020-10-12 10:31:17 +08:00
    @px920906 #11 别说了, 小学的时候干过
    est
        47
    est   2020-10-12 10:33:35 +08:00
    你这光改后缀还不算,还得改 content-type 的 mime
    XingWu
        48
    XingWu   2020-10-12 10:35:52 +08:00
    @jinliming2 非常感谢层主的解答
    lff0305
        49
    lff0305   2020-10-12 10:36:50 +08:00
    以前遇到过一个 bug,一些图片( png)在 PORD 上打不开 404,但是开发测试环境都没事
    后来发现,这些 PNG 实际上是 JPG
    PROD 上的防火墙 /负载均衡发现该资源的 mime type 和真实的 type 不一致,直接 404
    vcode
        50
    vcode   2020-10-12 10:48:52 +08:00
    哦豁,涨姿势了嘿嘿
    no1xsyzy
        51
    no1xsyzy   2020-10-12 11:08:32 +08:00   ❤️ 2
    楼主用 Irfanview 的话就不会这个问题,因为 Irfanview 会提示类似 “看上去像是一个 .jpg 后缀的 PNG 文件,是否要自动把后缀名改成 .png ?”

    @geelaw #43 应该算是 nominal / structural 的区分(最近翻译 Python 3.9 文档,library--typing 第 52 段,Nominal vs structural subtyping,目前是翻译成 “名义性子类型 区别于 结构性子类型”)

    @ysc3839 @jinliming2 @geelaw 承上述,
    主要是,大部分情况下文件浏览器并不需要区分文件的结构类型,只需要简单区分文件的名义类型,知道靠什么东西进行后续处理即可。那么对于文件浏览器来说只需要读个文件名比较方便。
    相对地,对于图片查看器而言,反正已经读取文件整体了,根据文件头来判断的话额外开销=0 ;反而如果强制根据后缀名会导致打开一次不成功改后缀再打开一次,相当于这个文件被读取两遍,最差条件下就是两倍的开销(还不包括重命名的开销),那显然应当根据文件头来判断。
    不过,文件浏览器有时需要读取文件内容,比如缩略图、 .exe 的自定义图标等,因为读取文件内容开销高就不要缩略图功能了吗?抱歉,人类反复打开的动作开销那是高到天边去了。至于读取文件的开销问题,解决的方法一般是将生成缩略图的功能非阻塞地实现,缩略图较慢地生成并不影响其他操作。
    说到底其实是个性价比问题。
    no1xsyzy
        52
    no1xsyzy   2020-10-12 11:13:35 +08:00
    @px920906 说道这个,我想起来说,哪个古老的操作系统可以把软件直接放桌面,因为一个软件就是一个文件夹,这个文件夹双击会启动程序,但同时也可以 cd 进去修改内容,那复制就真的可以了,现在的 Gnome 什么的跟快捷方式一样,一个 .desktop 还是什么的文件……
    zqx
        53
    zqx   2020-10-12 11:59:25 +08:00 via Android
    作为学过计算机科学与技术专业的,确实没有一门课专门讲授这些知识。
    操作系统课程中的文件系统,不在考试范围内,所以老师不会重点讲,书上也不会详细介绍。
    考试可能就考内存管理,指令集,处理器这些东西。
    raaaaaar
        54
    raaaaaar   2020-10-12 12:07:20 +08:00 via Android
    @zqx #53 学 Linux 文件,目录这里时,文件类型,文件命名就会接触到
    agagega
        55
    agagega   2020-10-12 12:49:39 +08:00 via iPhone
    @no1xsyzy macOS:你在暗示我?哈哈
    zsdroid
        56
    zsdroid   2020-10-12 12:51:58 +08:00
    原来“拷贝文件就拷了个快捷方式”不是段子啊。
    wangccddaa
        57
    wangccddaa   2020-10-12 14:27:40 +08:00
    图片只有两种格式 bitmap 和矢量图,png,jpg,webp 其实都是图片采用不同的压缩算法后传输格式,最终在绘制的时候在设备上还是要回归到位图或 矢量图来展示的。有点类似快递商和快递的关系
    pheyer
        58
    pheyer   2020-10-12 14:39:45 +08:00
    这叫不叫新时代的掩耳盗铃
    lxilu
        59
    lxilu   2020-10-12 14:45:59 +08:00
    @no1xsyzy #52 win: desktop.ini DirectoryClass=xxx, HKCR\xxx CanUseForDirectory; ClickOnce
    no1xsyzy
        60
    no1xsyzy   2020-10-12 15:01:18 +08:00
    @lxilu 好像确实是可以做到,不过我说的不是这个。
    fiveelementgid
        61
    fiveelementgid   2020-10-12 15:23:51 +08:00 via Android
    改后缀就算转格式了??????

    windows 惯的.....建议用用 file 命令
    linvaux
        62
    linvaux   2020-10-12 15:29:13 +08:00 via iPhone
    被 windows 惯坏了的楼主🌚
    mebtte
        63
    mebtte   2020-10-12 15:49:08 +08:00
    png 转 jpeg 小工具: https://mebtte.com/png_to_jpeg
    exiledkingcc
        64
    exiledkingcc   2020-10-12 16:22:23 +08:00
    @no1xsyzy 非常同意
    通过后缀名判断文件类型才是大有问题的操作。
    文件名本质上并不属于文件本身,而是属于文件系统。
    历史上对于文本文件没有文件头的设计真是太糟糕了。
    要是重新设计这一套东西,所有文件使用统一的可扩展的文件头才是最好的。
    krixaar
        65
    krixaar   2020-10-12 16:48:22 +08:00   ❤️ 2
    @XingWu #44 实际上你看多了图片 base64 会发觉总有那么一些图片开头永远是“/9j/”,又有一部分图片开头永远是“iVBORw0KGgo”,当你产生这个疑虑的时候,你这个问题就解决了,并不是不带头,而是你还没发觉。
    因为.jpg 文件开头一般都是 FF D8 FF,base64 就是“/9j/”,而.png 文件开头必然是 89 50 4E 47 0D 0A 1A 0A,base64 就是“iVBORw0KGgo”,尤其是 50 4E 47 实际上就是 ASCII 的“PNG”,你用记事本打开.png 文件一定会在开头看到这三个字母。
    再闲着无聊的话,把.zip 和.docx .xlsx .pptx 用记事本打开,开头都是奇特而统一的“PK”两个字母( Phil Katz ),这又意味着什么呢?
    no1xsyzy
        66
    no1xsyzy   2020-10-12 18:24:18 +08:00
    @exiledkingcc 不过一个好处是可以在图片后面嵌压缩包隐写互不干扰。
    至于统一文件头,HTTP 可不就是(
    甚至作为电子邮件的附件的话可以封装任何文件
    Xusually
        67
    Xusually   2020-10-12 18:41:29 +08:00
    @no1xsyzy macOS 有话说:右键-显示包内容
    lxilu
        68
    lxilu   2020-10-12 23:34:52 +08:00 via iPhone
    @krixaar #65 936 塒 NG
    secondwtq
        69
    secondwtq   2020-10-13 02:25:23 +08:00
    扩展名和文件内容都只能用来”辅助“判断文件类型。或者说都是 heuristic,再直白点说就是都是不靠谱的。

    我做 3D 建模会用到 Wavefront .obj 文件,这扩展名很明显和 Windows 的 Object File 冲突了,然而它是 3D 多边形模型的一种 ASCII 表示,并不能当作 Object File 来用。这个好像还算好的,但是 Wavefront .obj 是很老的东西了,现在流行用 Alembic 格式 (.abc),这个扩展名,我查到的至少有四种用途,我显出极高兴的样子,将两个指头的长指甲敲着柜台,问楼主,这四种用途,你知道么?
    而且扩展名是文件名的一部分,我每次输入文件名都得写一遍,为了简短还不得不用缩写,这不仅大大增大了冲突,而且还严重影响用户友好性——不仅是更麻烦了,每个新用户都必须学习”扩展名“这种概念,稍微 non-trivial 的用户必须学习如何 disambiguate 扩展名,我犯得着么?(顶级域名的情况貌似很类似,还得附加一条被少数实体控制垄断,甚至有人喜欢用奇葩的顶级域名凑字)
    根据文件内容判断就更不用说了,C 和 C++ 头文件的扩展名都是 .h (虽然我写 C++ 会用 .hxx/.cxx ,架不住大多数 C++ 项目用 .h ),我 file 一个 C++ 头文件告诉我是 C source ... 更离谱的是就连 Standard ML 源码都会给我报成 C source ... 综合看来,如果用于程序识别,还没扩展名靠谱呢
    更不用说两者都有完全无法识别的 ”any“ case

    有些文件管理器会把两种 heuristic 结合起来用,但是这种事情就像一个烂剧,剧本本身就烂透了,多请两个大腕明星还是烂剧。
    这个问题的根源在”数据“和”解释数据的方式“一般是分离的。比如 UNIX 下的 file 命令使用 libmagic 来实现,libmagic 有一个数据库(说是一个 DSL 库也无所谓),定义了一堆 heuristic 来判断到底是什么文件( https://github.com/file/file/tree/master/magic/Magdir )。显然这是不靠谱的,正确地判断文件类型你得给每种文件配一个 verifier,比如检查是不是 C++ 源码你得放一个 C++ 编译器进去,这就有点像停机问题了 ...

    再说到底“文件“这个东西本身就是个主要考虑地球人类整体水平和智商兼容的设计,必然会遇到这种问题,本贴只是冰山一角罢了。
    dany813
        70
    dany813   2020-10-13 09:39:14 +08:00
    有意思的话题啊
    no1xsyzy
        71
    no1xsyzy   2020-10-13 13:27:08 +08:00
    @secondwtq 就是添加了 verifier 还有个奇葩在:
    https://codegolf.stackexchange.com/questions/102370/add-a-language-to-a-polyglot
    这个 answer-chaining 的挑战目标是:同一段程序,不接受输入,但不同的语言会产生不同的输出,从 1 、2 一直往上数 —— 并且必须接着前一个人的来。
    不要说数据和解析数据的方式分离,同一份数据甚至本身就可以有多种解析方式。
    XingWu
        72
    XingWu   2020-10-13 14:23:47 +08:00
    @krixaar 真的涨知识了,没留意过,原来这里其实标注了。谢谢科普
    source
        73
    source   2020-11-26 18:44:22 +08:00
    @krixaar #65 谢谢你,在长久的压抑中我又找回了一些因为学习到新知识而产生的短暂的快乐
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1195 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 19:01 · PVG 03:01 · LAX 11:01 · JFK 14:01
    ♥ Do have faith in what you're doing.