【问题标题】:Which operators and functions expect their string arguments as octets?哪些运算符和函数期望它们的字符串参数为八位字节?
【发布时间】:2011-11-25 05:58:32
【问题描述】:

是否存在一个包含所有期望其字符串参数为八位字节的 Perl 运算符和函数的列表?

例如文件测试操作符需要八位字节(Question about pathname encodingcomment)。

现在我找到了带有symlink 的代码,但我不确定是否应该对文件名进行编码。

【问题讨论】:

  • 你有什么例子,所以人们会明白你的意思吗?

标签: perl function unicode encoding operators


【解决方案1】:

这仅仅是因为 Perl 使用或模拟的传统 Unix 系统调用都是根据字节定义的,而不是字符。如果你想要一个 UTF-8 编码或解码的文件名,那么你必须自己做。如果你不这样做,你就不会得到你想要的。

【讨论】:

  • 感觉很奇怪——我从没见过这样的代码open my $fh, '>', encode( 'utf8', 'my_filename' )
  • sid_com:硬编码 FS 编码会产生高度系统特定的代码。考虑到这一点使其可移植,并使用 PerlIO::fse 检测编码。
猜你喜欢
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 2016-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多