在mysql®中保存特殊字符? PHP

时间:2016-09-25 22:56:18

标签: php mysql mysqli character-encoding

我遇到用这句话更新我的msyql的问题:

davc® 50PCS 

当我在mysql workbench中运行bellow查询时,它可以工作:

UPDATE products 
SET 
    title = 'davc® 50PCS '
WHERE
    product_id = '386'

但是当我从我的服务器运行相同的查询时,它会成功运行,但会删除®之后的所有内容。

我想我应该对编码做些什么?我正在使用php和mysqli对象。

感谢

2 个答案:

答案 0 :(得分:0)

https://stackoverflow.com/a/38363567/1766831讨论了您遇到的两个问题:

  • "截断",这通常是由文本拉丁1引起的,但是试图存储到utf8(或utf8mb4)。
  • "变为乱码" (例如â®),这又是由文本和列不同意引起的。但它也涉及与客户端中的编码不一致的连接参数。

答案 1 :(得分:-1)

像这样的东西

$text = utf8_encode ( "davc® 50PCS " );

UPDATE products SET 
title = "{$text}" WHERE product_id = '386'

重要提示:更改您的sql以保护其免受sql注入。这样的事情:http://www.w3schools.com/php/php_mysql_prepared_statements.asp