Re: [SQL ] Perl DBI
※ 引述《LiloHuang (相見不如懷念)》之銘言:
: ※ 引述《b60413 (賴宏)》之銘言:
: : 作者: b60413 (賴宏) 看板: Database
: : 標題: [SQL ] Perl DBI
: : 時間: Sun Jan 27 00:00:12 2008
: : 請問一下 有人有試過用Perl的DBI Module來連接Mysql嗎?
: : 我在用Perl增加資料的時候 如果有中文就會變成亂碼
: : 網路上只有PHP的解法 就是mysql_query("SET NAMES 'utf8'")
: : 不過對於Perl的用法 好像就沒了
: : 不知道有沒有人跟我遇到同樣的問題?
: my $dbh = DBI->connect("DBI:mysql:$database",$accunt,$password);
: my $sth = $dbh->prepare("SET NAMES 'utf8'");
: $sth->execute;
: $sth->finish;
: # 這種問題一定要自己去看原始文件
: # 先去CPAN把DBI模組的用法看熟再來問比較得當
http://topic.csdn.net/t/20060715/09/4881953.html
這是我找我的問題的時候找到的@@
也許應該可以回答你的問題吧...!!!
我為我所在的公司,寫一些內部應用程序,B/S的,工具是perl+mysql,OS是2000(繁).由於是
港資公司,
所以,OS都是繁體的,我把頁面的編碼設置為 big5 ,這樣,無論從頁面輸入也好,從
數據庫讀數據也好,都沒有問題.但是,昨天我偶然發現,如果我用簡體輸入的話,那麼,讀到
數據庫里的數據,就都成亂碼了,
(因為我昨天才發現在繁體OS下也可以用簡體來寫漢字,我用簡體字往程序里面一輸入,
天!!!亂碼了)
有熱心的兄弟說,讓我用UTF-8,結果我 charset("utf8"); 把頁面設置成utf8,這下
,連頁面的顯示都成
亂碼了,我不甘心,我 charset("UTF-8"); 結果是一樣的,頁面都顯示正常,但數據
庫中依然是亂碼,還有位熱心的兄弟說,在mysql服務器上,寫入之前把所有數據都轉換成
Unicode,然後我就想了個辦法:(見下)
(比說下面的代碼)
#!/usr/bin -w
use strict;
use DBI;
my $var=param("cgi_var");
my $connect=DBI->connect("DBI:mysql:test","root","test");
my $select=$connect->prepare("insert into myTable
values(convert($var using utf8));");
$select->execute();
結果,用簡體輸入的話,數據庫里的數據依然是亂碼,我又分析
是不是,我在 form 里輸入的時候,由於頁面是 charset("big5"); 所以,我接
收的參數,就是經過
用big5碼的方式來解釋簡體輸入的,所以就得到的是亂碼?
以上是我的猜測.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.167.190
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章