私はいくつかのhtmlを解析しています:
use Modern::Perl;
use Mojo::DOM;
use strict;
use DBI;
use DBD::mysql;
use utf8::all;
my $dbh = DBI->connect("DBI:mysql:db_name", "db_username") or die ("Error:
$DBI::errstr");
my $html = do { local $/; <DATA> };
my $dom = Mojo::DOM->new($html);
my $text = $dom->all_text;
say $text;
my ($var1, $var2, $var3); #normally have values assigned, but not relevant to example
#write $text to MySQL database
$dbh->do("INSERT INTO table_name VALUES (?,?,?,?)",
undef,
$var1, $var2, $var3, $text
);
__DATA__
<div class="field-content"><p> </p>
<p>Here is some data with a trademark html symbol SUPER PRODUCT™, featuring curved
LCD screen.</p></div>
解析されたテキストを標準出力に書き込むと、次のようになります。
Here is some data with a trademark html symbol SUPER PRODUCT™, featuring curved LCD
screen.
すべて問題なく、これは MySQL に書き込まれます。ただし、MySQL 内で、および MySQL からデータを抽出すると、次のようになります。
Here is some data with a trademark html symbol SUPER PRODUCTâ„¢, featuring curved LCD
screen.
これは Unicode に関係しているのではないかと疑ったので、MySQL のステータス設定を変更しようとしましたが、それでも満足できませんでした。これを適切に解決する方法は?