私はPerlの初心者で、レガシーアプリケーションに取り組んでいます。データベースに ä、å、ö などの特殊文字がありません。以前は、Mysql データベースは latin1 照合でしたが、現在はデフォルトで UTF-8 に変更されています。データベースの値を調べると、これらの文字は変更されていません (å、ö、ä の他の文字がまだ取得されています)。perl コードを調べたところ、このエンコーディングと文字セットが機能していないようです。どんな助けでも大歓迎です。ありがとう。
use Encode qw/is_utf8 decode/;
my($q) = CGI->new();
$q->charset('utf-8');
$q->header(-charset => 'utf-8', -expires => '-1d')
データベースへの接続
my($dbh) = DBI->connect($config{'dbDriver'},$config{'dbUser'},$config{'dbPass'}) or die "Kunde inte ansluta till $config{'dataSource'}: " . $DBI::errstr;
$dbh->{'mysql_enable_utf8'} = 1;
$dbh->do('SET NAMES utf8');