Html 如何使用Perl将字符ALT-0146写入XML文件?
" 这就是字符,我无法找到一种方法来检测、替换或将其正确写入XML文件。起初我使用字符串连接,后来我想到了XML::Writer,但它仍然不起作用,之后XML仍然被破坏。(在UTF-8中需要它) 这是我写的一个测试,仍然会中断:Html 如何使用Perl将字符ALT-0146写入XML文件?,html,xml,windows,perl,utf-8,Html,Xml,Windows,Perl,Utf 8," 这就是字符,我无法找到一种方法来检测、替换或将其正确写入XML文件。起初我使用字符串连接,后来我想到了XML::Writer,但它仍然不起作用,之后XML仍然被破坏。(在UTF-8中需要它) 这是我写的一个测试,仍然会中断: my $output = new IO::File(">$foundFilePath"); my $writer = new XML::Writer(OUTPUT => $output); $writer->xmlDecl("U
my $output = new IO::File(">$foundFilePath");
my $writer = new XML::Writer(OUTPUT => $output);
$writer->xmlDecl("UTF-8");
$writer->startTag("xml");
$writer->startTag("test");
$writer->characters("’");
$writer->endTag("test");
$writer->endTag("xml");
$writer->end();
$output->close();
更具体地说,我试图从本页获取数据:
威廉·奥基夫先生把一切都搞砸了。你需要做两件事。如果要将UTF-8写入文件,需要这样说:
my $output = IO::File->new($foundFilePath, ">:utf8");
如果您想在源代码中使用文本UTF-8字符串,您需要说
use utf8;
在节目开始时。否则,Perl假定您的源代码是Latin-1
下面是一个完整的示例脚本:
use utf8;
use strict;
use warnings;
use IO::File;
use XML::Writer;
my $foundFilePath = 'test.xml';
my $output = IO::File->new($foundFilePath, ">:utf8");
my $writer = XML::Writer->new(OUTPUT => $output);
$writer->xmlDecl("UTF-8");
$writer->startTag("xml");
$writer->startTag("test");
$writer->characters("’");
$writer->endTag("test");
$writer->endTag("xml");
$writer->end();
$output->close();
你需要做两件事。如果要将UTF-8写入文件,需要这样说:
my $output = IO::File->new($foundFilePath, ">:utf8");
如果您想在源代码中使用文本UTF-8字符串,您需要说
use utf8;
在节目开始时。否则,Perl假定您的源代码是Latin-1
下面是一个完整的示例脚本:
use utf8;
use strict;
use warnings;
use IO::File;
use XML::Writer;
my $foundFilePath = 'test.xml';
my $output = IO::File->new($foundFilePath, ">:utf8");
my $writer = XML::Writer->new(OUTPUT => $output);
$writer->xmlDecl("UTF-8");
$writer->startTag("xml");
$writer->startTag("test");
$writer->characters("’");
$writer->endTag("test");
$writer->endTag("xml");
$writer->end();
$output->close();
或者,
$writer->characters(chr(0x2019))代码>和$writer->字符(“\x{2019}”)代码>不太可能被编辑器弄乱。这有助于创建角色,但我的主要问题是首先要检测到它,如何用正则表达式捕捉角色?不过实际上,如果你只使用utf8进行所有输入和输出,就没有必要检测它——这一切都可以正常工作。@Sho,这是另一个问题。如果你需要答案,请把它作为一个新的问题来问(更多关于你尝试过的内容的细节)。我尝试了很多不同的表达方式,但都没有发现任何结果。我可能保存并读取了一个意外使用拉丁语-1的html文件。。。你能看看这个文件,看看我陷入了什么样的编码噩梦吗?或者,$writer->characters(chr(0x2019))代码>和$writer->字符(“\x{2019}”)代码>不太可能被编辑器弄乱。这有助于创建角色,但我的主要问题是首先要检测到它,如何用正则表达式捕捉角色?不过实际上,如果你只使用utf8进行所有输入和输出,就没有必要检测它——这一切都可以正常工作。@Sho,这是另一个问题。如果你需要答案,请把它作为一个新的问题来问(更多关于你尝试过的内容的细节)。我尝试了很多不同的表达方式,但都没有发现任何结果。我可能保存并读取了一个意外使用拉丁语-1的html文件。。。你能看看这个文件,看看我陷入了什么样的编码噩梦吗?