[前][次][番号順一覧][スレッド一覧]

mysql:13814

From: <ml_mysql@xxxxxxxxxx>
Date: Thu, 22 Mar 2007 20:32:14 +0900
Subject: [mysql 13814] Mysql の出力を、UTF8に変換できない

こんにちは

石川と申します。

多国化する必要があり、とりあえず
UTF-8について勉強しています。

現在 EUC-JPで格納されているフィールドを読み、UTF8に変換し、
出力しようとしたところ、
(本番は、出力のHTMLに、中国語や韓国語と日本語が混じるため、事前に
このようなテストをしています。)

$test_2 = Encode::decode("Guess", $test_2);
の所で、
euc-cn or shiftjis or euc-jp at 
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/Encode.pm line 162, referer: 
http://192.168.1.17/ss/test/utf-8_test_db.html

と言うエラーになってしまいます。

どの様にすれば、UTF8に変換できるか、教えてください。
よろしくお願いします。

Redhat Linux 3.0ES
Perl 5.8.0  近い将来バージョンアップするつもりです。
MySQL version 4.1.14

Mysql のセット内容  -------------------------
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_results latin1
character_set_server latin1
character_set_system
collation_connection latin1_swedish_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
(全てUTF8にすれば簡単ですが、関連するソフトが多いため、
先に、重要なところだけ、出力のみUTF-8にしようと思っています。)

テーブル -------------------------------------
test_1 int(8)  主キー  auto_increment
test_2 longblob

test_2 には、[longblob の内容です。] という文字が入っています。

テストしたスクリプト -------------------------
#!/usr/bin/perl
use utf8;
use Encode;
use Encode::Guess;
binmode STDOUT, ":utf8";
Encode::Guess->set_suspects(qw/euc-jp shiftjis 7bit-jis utf8 gb2312 euc-cn/);
print "Content-type: text/html\n\n";
use DBI;
use strict;

my $test_1;
my $test_2;

my $dbh = DBI->connect('DBI:mysql:present','ID','PASS');
my $query = "SELECT test_1, test_2 FROM curriculam_kanri.curriculum_naiyou 
ORDER BY curriculum_naiyou_no  LIMIT 1";

my $out = $dbh->prepare($query);
$out->execute;
$out->bind_col(1,\$test_1);
$out->bind_col(2,\$test_2);
$out->fetch;
$out->finish();
$dbh ->disconnect();

$test_2 = Encode::decode("Guess", $test_2); # ここでエラーになります。

&head;
print "$test_1 $test_2 <br>";
&foot;
exit;


sub head{
         print "Content-type: text/html\n\n";
         print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 
Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n";
         print "<html>\n";
         print "<head>\n";
         print "<meta http-equiv=\"Content-Type\" content=\"text/html; 
charset=utf-8\">\n";
         print "<title>UTF8 DB多国語テスト1</title>\n";
         print "</head>\n";
         print "<body>\n";

}

sub foot{
         print "</body>\n";
         print "</html>\n";

}

よろしくお願いします。 


[前][次][番号順一覧][スレッド一覧]

->   13814 2007-03-22 20:32 [<ml_mysql@xxxxxxxxxx] Mysql の出力を、UTF8に変換できない     
     13815 2007-03-22 21:24 ┗["TOYOSHIMA,Masayuki"]                                       
     13816 2007-03-23 15:55  ┗[Tecchi <mugen_ml@xxx] テーブルのロックについて            
     13817 2007-03-23 21:30   ┣["T.Hirotsu" <hirotsu]                                   
     13818 2007-03-24 02:51   ┃┗[Tecchi <mugen_ml@xxx]                                 
     13824 2007-03-26 08:47   ┗[YuGo <yu.gotou@xxxxx]                                   
     13830 2007-03-26 18:12    ┗[Tecchi <mugen_ml@xxx]                                 
     13831 2007-03-26 22:01     ┣["T.Hirotsu" <hirotsu]                               
     13832 2007-03-27 15:11     ┗[YuGo <yu.gotou@xxxxx]                               
     13833 2007-03-27 19:14      ┗[Tecchi <mugen_ml@xxx]