UPDATE Tasks SET taskname='Character – – ' WHERE taskguid='D782BA07-9B42-46BB-B4C1-3C6E844880F5
“
如果我使用SQL Server管理工作室运行此查询,那么一切看起来都很正常但是如果我使用PDO在PHP中执行此查询,那么它会插入一些有线字符,如
character – –
我知道有些东西丢失但不知道。为什么会这样?
我正在使用
PHP (Version 5.3.8)
PDO_ODBC (ODBC Connection Pooling Enabled, strict matching)
IIS 7 (using FastCGI)
Window server 2008R2
SQL SEVER 2008
修改
我还有一些角色。
'’' = '’'
'‘' = '‘'
'—' = '–'
'•' = '-'
答案 0 :(得分:1)
–
是UTF-8损坏的明显证据,即UTF-8中的多字节字符序列被重新解释为另一种编码。最简单的解决方法是确保所有内容都使用UTF-8,包括数据库连接,用户输入,字符串文字等。请注意,UTF-8不是Windows上的默认编码,因此您可能需要在各个地方显式
答案 1 :(得分:-1)
您可能使用错误的字符集。
试试这个: (标题应位于代码的顶部)
<?php
header('Content-Type: text/html; charset=utf-8');
?>
连接到MySQL后添加:
<?php
mysql_query("set names 'utf8'");
?>