【问题标题】:Safely save a dictionary to file安全地将字典保存到文件
【发布时间】:2013-03-20 10:32:03
【问题描述】:

将字典保存到文件的最佳方法是什么,以便我以后可以在不同的计算机/系统上的 Tcl 中加载它?

我认为fconfigure $stream -translation binary; puts -nonewline $stream $dict 不起作用,如果有带有 unicode 字符的键/值 > \u00ff。 “utf-8”编码是否可以(以节省磁盘空间),还是应该始终使用完整的“unicode”?

字典对我来说是新的,但由于它们的文本表示是具有交替键/值的列表,而列表只是一个带有一些额外语法字符的字符串,也许问题可能是“安全地保存一个 字符串到文件”?

【问题讨论】:

    标签: character-encoding tcl


    【解决方案1】:

    您的问题可以简化:

    我应该使用什么编码?

    答案是:视情况而定。

    • 如果您只有二进制数据,那么二进制是可行的方法。
    • 如果您主要使用 ascii 字符和一些例外(如变音符号等),那么 utf-8 是最适合您的编码(\x00\x7f 之外的字符使用 2 个或更多字节编码,ascii 使用1 个字节)。
    • 如果您有很多 CJK,那么使用 unicode 或其他一些编码可能会更好(每个字符 2 字节与 3 字节)

    没错:列表和字典的(反)序列化在 Tcl 中比在许多其他语言中容易得多:将其保存为字符串。

    【讨论】:

    • 另外,如果你使用系统编码以外的任何东西,那么你需要在许多地方特别小心处理它(即,在任何将它读回内存的地方)。如果数据将由非 Tcl 代码处理,真的坚持系统编码以保持“WTF!?”因素。
    猜你喜欢
    • 1970-01-01
    • 2017-07-14
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    相关资源
    最近更新 更多