我有一个在本地工作正常但在服务器上失败的脚本。
显示不间断的空格符号
as
?
打印到标准输出时。
在解析页面时,如果我尝试用
去除非破坏空格符号s/\ \;//g
没有任何反应,也没有摆脱问号
s/\?//g
似乎无论如何都坚持下去。
Bizzarely,在本地运行脚本时这不是问题。
但是,本地计算机和服务器上的一个问题是撇号(在HTML中表示我正在抓取一个急性符号
´
始终表示为问号
?
即使明确尝试
s/´/'/g
困惑,请帮助。
答案 0 :(得分:2)
会尝试将其删除:
不间断空间
my $non_break_space = "\x{A0}";
$non_break_space =~ s/\xA0/ /g;
急性重音
my $acute = "\x{B4}";
$acute =~ s/\xB4/ /g;
您可以使用此网站fileformat.info获取有关unicode字符及其不同值的更多信息。
答案 1 :(得分:0)
由于您使用mojolicious标记了问题,我假设您正在使用Mojolicious。尝试在您的服务器上运行此测试脚本并向我们显示结果:
#!/usr/bin/env perl
use utf8;
use Mojolicious::Lite;
use Test::More tests => 3;
use Test::Mojo;
get '/test_html' => {text => "<p>Hello World´!</p>"};
my $t = Test::Mojo->new;
$t->get_ok('/test_html')->status_is(200)->text_is('p', 'Hello World´!');
在这里工作正常:
1..3
ok 1 - get /test_html
ok 2 - 200 OK
ok 3 - exact match for selector "p"