2012-03-09 21 views
5

當我從MySQL數據庫中提取數據時,某些輸出在打開時會有特殊字符 。 emacs解碼爲\240\346如何將特殊字符轉換爲UTF-8?

當在UTF-8終端所示,特殊字符被示出爲

所以使用的編碼接縫只使用每個字符1個字節。

我可以例如看到\346應該是æ

問題

還包括Perl具有能夠編碼這些特殊字符以UTF-8的模塊?

+0

http://blog.jonnay.net/archives/820-Emacs-and-UTF-8-Encoding.html? – 2012-03-09 15:51:37

+0

問題不在於emacs。我希望Perl將內容編碼爲UTF-8。 – 2012-03-09 15:58:13

+1

你有沒有設置終端來顯示utf-8? – 2012-03-09 16:05:32

回答

3

使用Encode::decode來解碼您的數據從它的任何編碼到Perl的內部格式。

然後,寫出到文件中的數據時,設置'utf8'層以使數據以UTF-8寫入。

use Encode; 

my $data_from_database = ...; 

my $perl_data = decode('ISO-8859-1', $data_from_database); 

binmode STDOUT, ':utf8'; 

print $perl_data;