gpt4 book ai didi

perl - 使用 Perl 以 UTF-8 模式写入文件

转载 作者:行者123 更新时间:2023-12-01 09:15:10 25 4
gpt4 key购买 nike

我需要在 Perl 中用 UTF-8 模式编写一个文件。我如何创建它?

在这种情况下,有人可以帮忙吗?

我正在尝试这样,找到我下面的代码,

use utf8;
use open ':encoding(utf8)';
binmode(FH, ":utf32");

open(FH, ">test11.txt");
print FH "something Çirçös";

它正在创建一个 UTF-8 格式的文件。但我需要确定这是否是从这个脚本中发生的。因为如果我在不使用 utf8 编码的情况下编写文件,文件内容将自动采用 UTF-8 格式。

最佳答案

你要

use utf8;                       # Source code is encoded using UTF-8.

open(my $FH, ">:encoding(utf-8)", "test11.txt")
or die $!;

print $FH "something Çirçös";

或者
use utf8;                       # Source code is encoded using UTF-8.
use open ':encoding(utf-8)'; # Sets the default encoding for handles opened in scope.

open(my $FH, ">", "test11.txt")
or die $!;

print $FH "something Çirçös";

笔记:
  • 您想要的编码是 utf-8 (不区分大小写),不是 utf8 (特定于 Perl 的编码)。
  • 不要使用全局变量;使用词法 ( my ) 变量。
  • 如果您不使用编码指令,您可能会很幸运并获得正确的输出(以及“宽字符”警告)。不要指望这个。你不会总是幸运的。
    # Unlucky.
    $ perl -we'use utf8; print "é"' | od -t x1
    0000000 e9
    0000001

    # Lucky.
    $ perl -we'use utf8; print "é♡"' | od -t x1
    Wide character in print at -e line 1.
    0000000 c3 a9 e2 99 a1
    0000005

    # Correct.
    $ perl -we'use utf8; binmode STDOUT, ":encoding(utf-8)"; print "é♡"' | od -t x1
    0000000 c3 a9 e2 99 a1
    0000005
  • 关于perl - 使用 Perl 以 UTF-8 模式写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46376935/

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