Re: [SQL ] Perl DBI

看板Perl作者 (想)時間17年前 (2008/01/29 02:50), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《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
文章代碼(AID): #17dYFaH3 (Perl)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
2
3
17年前, 01/27
文章代碼(AID): #17dYFaH3 (Perl)