gpt4 book ai didi

perl - 是否应该在 Perl 中将显式字符编码和编码/解码提升为 "best practice"?

转载 作者:行者123 更新时间:2023-12-04 16:49:56 24 4
gpt4 key购买 nike

之前我对字符编码问题只有模糊的认识,但是answers to a question today让我开始思考。以下内容也提供了更多的思考:

perlunitut - Perl Unicode Tutorial

perlunifaq - Perl Unicode FAQ

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

我看到的唯一提到将源代码的字符编码(例如 use utf8; 对我们大多数人来说)作为“最佳实践”的地方是在前面提到的 question 的答案中。 .

此外,perlunitut提到我们应该use Encode qw{encode decode};在我们的 Perl 程序的“标准标题”中。因此,似乎另一个“最佳实践”应该是解码所有输入并对所有输出进行编码。

你怎么认为?

最佳答案

use utf8实际上与它几乎没有关系——几乎没有人使用 unicode 标识符,并且程序可以很容易地识别编码,而无需在代码中包含 UTF-8 字符串文字。

但是,是的,我所知道的处理编码的最佳智慧是:

  • 始终知道您的数据来自哪里以及它是如何格式化的,并尽快对其进行解码(除非它打算作为字节进行处理)。
  • 始终了解您正在写入的数据格式或您的客户期望什么,并对输出进行编码(除非您的数据已经是字节)。
  • 当涉及到文本时,请始终使用程序“内部”中的字符串。

  • 一百万种不同的字符集和一百万种不同的编码的存在应该尽可能地成为界面的细节。有些事情你仍然需要记住——例如不同语言的不同排序规则——但无论如何这是一个理想的选择,尽可能地遵循它应该会大大减少“编码问题”的数量在你的代码中。

    更直接地回答你的问题,是的——如果你在没有解码的情况下从外部读取文本数据,或者在没有编码的情况下将数据发送到任何地方,那么你很可能犯了错误,并且当有人时你的代码会崩溃else 在与您不同的语言环境中使用它。

    关于perl - 是否应该在 Perl 中将显式字符编码和编码/解码提升为 "best practice"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1843603/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com