簡體   English   中英

PDO charset從iso-8859-2到UTF8

[英]PDO charset from iso-8859-2 to UTF8

我在MySQL DB中有一個字段:

description     text    utf8_general_ci

我使用CURL廢棄網站iso-8859-2並嘗試將值插入utf8_general_ci字段。 一切都還好,但我失去了角色,即。 ęąśćż等你們能幫助我嗎?

我通過PDO連接到DB:

 $pdo = new PDO('mysql:host=localhost;dbname=xx;charset=utf8', 'xxx', 'xxx');
 $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

比我准備我的查詢:

 $stmt1 = $pdo -> prepare('INSERT INTO `jos_djcf_items1` (`cat_id`, `user_id`, `name`, `description`, `intro_desc`, `date_start`, `display`, `published`, `contact`)    VALUES(
                                :cat_id,
                                :user_id,
                                :name,
                                :description,
                                :intro_desc,
                                :date_start,
                                :display,
                                :published,
                                :contact)'); // 1

我檢查字符集:

$oferta[$j][0]= iconv("iso-8859-2","UTF-8",$nazwa);
$ary[] = "UTF-8";
$ary[] = "iso-8859-2";
$ary[] = "EUC-JP";
echo mb_detect_encoding($oferta[$j][0], $ary);
// it returns: UTF-8
$oferta[$j][1]=iconv("iso-8859-2","UTF-8",$krotkiOpis);
$oferta[$j][2]=iconv("iso-8859-2","UTF-8",$opis);
$oferta[$j][3]=iconv("iso-8859-2","UTF-8",$kontakt);
$oferta[$j][4]=rand(3,40);

比我綁定值並執行查詢

$count += $stmt1 -> execute(); 

在PHP 5.3.6之前,您應該如何設置連接字符集:

$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

$pdo = new PDO('mysql:host=localhost;dbname=xx', 'xxx', 'xxx', $options);

請注意,編碼必須與ASCII兼容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM