首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从iso-8859-2到UTF8的PDO字符集

从iso-8859-2到UTF8的PDO字符集
EN

Stack Overflow用户
提问于 2012-06-02 21:01:49
回答 1查看 4.9K关注 0票数 1

我在MySQL DB中有一个字段:

代码语言:javascript
复制
description     text    utf8_general_ci

我使用CURL删除网站与iso-8859-2,并尝试插入值到utf8_general_ci字段。一切都很好,但是我失去了角色。ęąśćż等,你们能帮我吗?

我通过PDO连接到DB:

代码语言:javascript
复制
 $pdo = new PDO('mysql:host=localhost;dbname=xx;charset=utf8', 'xxx', 'xxx');
 $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

然后我准备我的查询:

代码语言:javascript
复制
 $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

我检查字符集:

代码语言:javascript
复制
$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);

然后我绑定值并执行查询

代码语言:javascript
复制
$count += $stmt1 -> execute(); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-02 22:26:58

在PHP 5.3.6之前,您应该这样设置连接字符集:

代码语言:javascript
复制
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

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

请注意,编码必须与ASCII兼容。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10862511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档