Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使用Perl将字符ALT-0146写入XML文件?_Html_Xml_Windows_Perl_Utf 8 - Fatal编程技术网

Html 如何使用Perl将字符ALT-0146写入XML文件?

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

"

这就是字符,我无法找到一种方法来检测、替换或将其正确写入XML文件。起初我使用字符串连接,后来我想到了XML::Writer,但它仍然不起作用,之后XML仍然被破坏。(在UTF-8中需要它)

这是我写的一个测试,仍然会中断:

    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文件。。。你能看看这个文件,看看我陷入了什么样的编码噩梦吗?