我很高興能夠將基於perl的web框架重建爲UTF8支持。我採取了以下措施Perl UTF8 CGI和DBI ...什麼是正確的工作流程?
主腳本:
use open IO => ":utf8",":std";
use utf8;
的DBI適配器:
$self->{dbh}->{'mysql_enable_utf8'} = 1;'
,並在我的POST請求剖析和GET,基於CGI:
foreach (@val) { $_ = decode("UTF-8",$_); }
這個,據我所知,wo rks在我的本地Ubuntu上使用Perl 5.10.1很好,但是在運行5.10的web服務器上,解碼POST或者GET會弄亂文本。
我必須承認,我對整個UTF8的事情感到非常困惑。我需要
讀模板
從MySQL
過程POST獲取數據和GET 插入到MySQL
寫模板
請問有什麼我忘了嗎?什麼會導致不穩定的行爲?我在主腳本中使用的每個模塊是否需要特別指定use utf8
或者如果主腳本執行該操作就足夠了嗎?
感謝您的任何提示,關於你的拉丁語> UTF8的工作我都condolances的
托馬斯
`use utf8;`只是告訴Perl解釋器,你的源代碼是用utf8編碼的。除非在代碼中有utf-8字符串文字,否則根本就不需要該行。 – mfontani 2011-01-13 13:56:17
也可以看看http://www.slideshare.net/Penfold/perl-and-unicode,特別是關於使用`Encode`來編碼/解碼文本,並確保客戶端知道以正確的內容發送數據 - 類型。 – mfontani 2011-01-13 13:56:59
給出一個具體的例子,說明「解碼POST或GET將如何混淆文本」。顯示重現問題所需的完整Perl代碼,構造請求的Web表單以及HTTP請求/響應的轉儲。 – daxim 2011-01-13 14:13:00