php5.6 数据库编码,PHP 5.6 - 使用PDO,并指定字符集的Oracle数据库连接/编码

我不知道我可能会错过,但目前这一工作的代码我能够从db表连接,查询并返回结果正常。PHP 5.6 - 使用PDO,并指定字符集的Oracle数据库连接/编码

但如何能证明从表中以正确的编码的结果?因为像ç,á这样的特殊字符有时会显示为问号或方形框。

波纹管,我到目前为止所有的信息,但我相信定义必须在PDO上设置,因为如果我只是在页面上做一个echo "ç -á";,字符将正确显示。

甲骨文11表字符集:

查询:SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;

结果:WE8MSWIN1252

php.ini文件编码设置:

default_charset = "UTF-8"

internal_encoding = "UTF-8"

input_encoding = "UTF-8"

output_encoding = "UTF-8"

代码例如:

#

# PDO Connect example

#

$tns = "

(DESCRIPTION=

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

(CONNECT_DATA=

(SID=the_database)

)

)

";

$username = "x";

$password = "x";

try {

$conn = new PDO("oci:dbname=" . $tns, $username, $password);

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}

catch (PDOException $e) {

echo 'ERROR: ' . $e->getMessage();

}

#

# Fetch results and build html table

#

$sql = "select * table";

$result = $conn->query($sql);

echo '

echo '';

echo '

';

echo '

Info';

echo '

';

echo '

';

echo '

';

foreach ($conn->query($sql) as $row) {

echo '

';

echo '

' . $row['INFO'] . '';

echo '

';

}

echo '

';

echo '

';

+0

看起来像你的表字符集是windows 1252(基本上拉丁8859-1);你也需要你的表使用UTF8。 –

+0

@ CD001我相信我需要改变php方面,因为不允许更改表格的字符集。所以,我会尝试更新PHP端到拉丁文,看它是否会起作用。我不确定这是否是正确的方向,请您详细说明,以便我能更好地理解? =) –

+0

这应该工作 - 你非常想在这里照做:http://stackoverflow.com/questions/279170/utf-8-all-the-way-through/279279 ......但切换一切' ISO-8859-1'(Windows 1252是它的一个子集,所以它应该没问题)。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值