代码之家  ›  专栏  ›  技术社区  ›  balaweblog

导出为二进制-textmode时的文本数据不正确

  •  0
  • balaweblog  · 技术社区  · 16 年前

    我正在生成一个包含这样数据的文件。

    78,45,New things,200, Number of columns,2.00,5
    

    当我用textform二进制类型的textpad打开文件时。

    0: FF FE 33 00 36 00 2C 80 00 20 30 10 4F 7.8.4.5,4.5,
    

    在数据部分,它的(.)位于两个连续数字之间。

    1 回复  |  直到 11 年前
        1
  •  2
  •   AnthonyWJones    16 年前

    十六进制查看器显示文件中每个字节的ASCII值。但是,文件似乎保存为unicode(它以一个ff fe开头,该ff fe是unicode的bom)。通常,文本编辑器正确地识别这个BOM(记事本和记事本++,我不熟悉textpad)。

    注意,十六进制查看器几乎普遍使用。字符,表示不能呈现为ASCII字符(或来自用户OEM集的字符)的字节值。

    实际的编码看起来像Unicode,例如33 00和36 00是数字数字,尽管它们代表36而不是78,因此问题右侧的ASCII表示实际上与左侧的字节值不匹配。

    字符串:-“78,45,n”保存为litte endian unicode文件时,在十六进制视图中如下所示:

    FF FE 37 00 38 00 2C 00 34 00 35 00 2C 00 4E 00..7.8.,.4.5.,.N.

    因此,保存内容的方法要么很奇怪,而且会弄乱编码,要么textpad处理不当(或者您没有正确使用textpad)。在记事本中打开文件,它是否显示为正常?