2

ローカルで正常に動作するスクリプトがありますが、サーバーで失敗します。

ノーブレークスペース記号が表示されます

   

なので

?

標準出力に印刷する場合。

ページの解析で、ノーブレークスペース記号を削除しようとすると

s/\&nbsp\;//g

何も起こらず、疑問符を取り除くこともありません

s/\?//g

何があってもくっつくようです。

奇妙なことに、これはスクリプトをローカルで実行する場合の問題ではありません。

ただし、ローカルマシンとサーバーの両方での問題は、アポストロフィ(アキュートシンボルとしてスクレイピングしているHTMLで表されている)です。

´

常に疑問符として表されます

?

明示的に試みても

s/´/'/g

混乱している、plsは助けます。

4

2 に答える 2

2

次のように削除しようとします:

ノーブレークスペース

my $non_break_space = "\x{A0}";
$non_break_space =~ s/\xA0/ /g;

アキュートアクセント

my $acute = "\x{B4}";
$acute =~ s/\xB4/ /g;

このサイトfileformat.infoを使用して、Unicode文字とそのさまざまな値の詳細を取得できます。

于 2012-11-24T12:39:26.427 に答える
0

質問にMojoliciousを使用していると思います。サーバーでこのテストスクリプトを実行して、結果を表示してみてください。

#!/usr/bin/env perl

use utf8;
use Mojolicious::Lite;
use Test::More tests => 3;
use Test::Mojo;

get '/test_html' => {text => "<p>Hello&nbsp;&nbsp;World&acute;!</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"
于 2012-11-24T16:38:43.557 に答える