如何在Perl中打开一个UTF-16编码的XML文件?

3

我很乐意协助表达:我已经在这里几周了。

我正在尝试用Perl打开一个编码为utf-16的XML文件。

我能够在utf-8中创建该文件,但它并不适合我,而且还引起了我的问题。


3
你尝试过什么?你是如何打开XML文件的?另外,你可能需要查看openPerlIO的文档来了解如何处理编码。 - Hasturkun
1
请访问以下网页,了解如何指定文件编码。 - Polar Bear
@ikegam 这个问题正在询问如何(虽然不是非常清楚)以utf-16编码方式创建一个xml文件。 - ysth
@ysth,我的早期评论也适用于生成器。(除了糟糕的是,XML::Writer不支持UTF-16。)无论如何,我们需要知道OP在继续之前如何创建文档这一主要观点仍然适用。 - ikegami
显示剩余2条评论
1个回答

1
请查看以下示例代码是否符合您的要求。
use strict;
use warnings;

use Encode qw/encode decode/;

my $filename = 'utf16_1.txt';

open my($out), '>:encoding(UTF-16LE)', $filename
    or die "Couldn't open $filename";

my $string = 'Sample data';

print $out $string; 

close($out);

其他变体
use strict;
use warnings;

use Encode qw/encode decode/;

my $filename = 'utf16_2.txt';

open my($out), '>:raw', $filename
    or die "Couldn't open $filename";

my $string = 'Sample data';

print $out encode("UTF-16LE", $string); 

close($out);

谢谢您的回答。 请问您能否帮我找到适合我创建的XML文件支持希伯来语的模型? 我尝试以希伯来语写入文件,但返回了乱码,而在类比情况下它却写得很好。 如果您能帮助我解决这个问题,我将不胜感激。 - Eden ohana
在您的问题中,您没有指定最终目标。您是要创建 xml 文件来存储数据,还是以其他方式使用(例如发布内容在网站上)?如果您将数据存储在 xml 文件中,则一些软件将读取它,并且您已经引用了 UTF-16LE,这是该软件的一种特定格式。如果您在网站上发布数据,则 utf8 应该足够了。您能否更具体地说明“返回不正确的字符Gibrish”是什么意思? - Polar Bear
请访问耶路撒冷希伯来大学,并在浏览器活动窗口中按下Ctrl+U以查看网页的源代码。您将看到这个网站使用了什么XML文档类型 - 这可能是您需要的。 - Polar Bear
1
将数据以CSV格式保存,并在_Excel_中打开以进行进一步处理。您需要确认_Excel_期望导入的数据采用UTF8编码。 - Polar Bear
你在编写 iPhone 修复方面犯了错误。不管怎样,明天我会发送一些我的代码和一些示例 XML,也许这样你就能更好地理解我了。 - Eden ohana
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接