我正在Perl中獲取數據庫表字段值(它是'utf8_unicode_ci')並試圖將該值插入到另一個表中(這也是'utf8_unicode_ci');如何處理Perl中的utf字符
但我沒有在Perl中正確獲取值。
我試圖讀取和插入的值是₨
。
我想盡了各種辦法,但他們沒有工作
任何一個可以幫助?
我曾嘗試下面的代碼:
use Encode; $message = decode_utf8($message);
我正在Perl中獲取數據庫表字段值(它是'utf8_unicode_ci')並試圖將該值插入到另一個表中(這也是'utf8_unicode_ci');如何處理Perl中的utf字符
但我沒有在Perl中正確獲取值。
我試圖讀取和插入的值是₨
。
我想盡了各種辦法,但他們沒有工作
任何一個可以幫助?
我曾嘗試下面的代碼:
use Encode; $message = decode_utf8($message);
你可能需要把它添加到連接:
my $dbh = DBI->connect(...);
$dbh->do("SET NAMES 'utf8'"); #<-- add this after the connection was established
隨着SET NAMES 'utf8'
我們正在做的就是一句話:
SET character_set_client = 'UTF8';
SET character_set_results = 'UTF8';
SET character_set_connection = 'UTF8';
MySQL documentation可能會有幫助。
如果在連接到數據庫時使用mysql_enable_utf8
屬性,則DBD::mysql將爲您執行轉換。
my $dbh = DBI->connect("dbi:mysql:database=$db", $user, $pass",
{ mysql_enable_utf8 => 1 });
感謝您的回覆。但是'NAMES'是什麼? – user2659554
我已更新我的回答 –
只有一個表字段被設置爲'utf8_unicode_ci'。 因此,如果我們這樣做,它會影響所有數據? – user2659554