如何在 perl 中将 ascii 编码文件转换为 utf-8 编码?

sam*_*sam 0 shell perl ascii file utf-8

我想将带有 ascii 编码的文本文件转换为 utf-8 编码。到目前为止,我已经尝试过这个:

open( my $test, ">:encoding(utf-8)", $test_file ) or die("Error: Could not open file!\n");
Run Code Online (Sandbox Code Playgroud)

并运行以下显示文件编码的命令

file $test_file
test_file: ASCII text
Run Code Online (Sandbox Code Playgroud)

如果我在这里遗漏了什么,请告诉我。

Dav*_*oss 5

任何 ASCII 格式的文件(即只包含 0 到 127 的代码点)都已经是 UTF-8 格式了。编码没有区别,因此无法file将其识别为 UTF-8。

编码差异仅发生在代码点为 128 的字符上。

它旨在向后兼容 ASCII:Unicode 的前 128 个字符与 ASCII 一一对应,使用与 ASCII 具有相同二进制值的单个字节进行编码,因此有效的 ASCII 文本是有效的 UTF-8 -encoded Unicode 也是如此。

(来自维基百科关于 UTF-8 的文章