[英]Problem with PHP and Mysql UTF-8 (Special Character)
我有一个带有一个名为(ProductTitle)的文本框的表单
如果我在文本框中写入示例“Étuit”并单击“保存”,我会将数据发布到名为 Product 的表中。 ProductTitle 数据库中的结果是 Étuit。 我担心的是特殊字符。 我没有将 É 放入数据库,而是得到了 É
当我将数据库中的产品标题(“Étuit”)加载到跨度中时。 正确显示。
但是当我将它加载到文本框中以编辑产品标题时,它显示了 Étuit。
任何人都知道为什么。
我把它放在 html 头上
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
注意:当我点击表单上的保存时,数据使用 jquery ajax 方法发布。
在使用数据库之前尝试设置客户端编码。
mysql_query("SET NAMES 'utf8'");
如果上述方法不起作用,请使用 utf8 编码/解码功能:
<?
$string ="Étuit";
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<?
echo $string; // echo's '?tuit'
echo utf8_encode($string); // echo's 'Étuit'
?>
看看utf8_encode()
和utf8_decode()
。 还要看看多字节字符串函数。
可能发生的情况是客户端的默认字符集未设置为 UTF-8,因此您在一个方向或另一个方向上进行换位。 此处以多种不同方式对此进行了介绍:
通常,在连接实例化之后对“SET NAMES utf8”的初始化查询将解决未来的问题,但请确保您认为存储的内容(utf8)实际上是存储的内容。 如果没有,你可能有一个清理工作。
在代码中的每个连接之前不要打扰 SET NAMES,可以使用 mysql 连接字符串中的参数:
"jdbc:mysql://hostAddress:port/databaseName?characterEncoding=UTF-8"
这篇文章解释了如何在 PHP 和 MySQL 中配置和使用 UTF-8。 希望能节省您的时间。
这些对我有用:
在 HTML 标头中:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
PHP连接后:
$conexion = @mysql_connect($servidor, $usuario, $contrasenha);
mysql_select_db($BD, $conexion) or die(mysql_error($conexion));
mysql_query("SET NAMES 'utf8'");
当我使用 mysqli lib 时,我只使用 set_charset 方法。
error_reporting(E_ALL);
$mysqli = new mysqli('localhost', 'login', "pass", 'database');
if ( ! $mysqli->set_charset("utf8") )
{
printf("Error loading character set utf8: %s\n", $mysqli->error);
}
我也遇到了困难,但以下内容总是对我有用,在操作数据之前:确保按如下方式设置编码:
try{
$dbh = new PDO($dsn, $user, $pass);
$dbh->query("SET NAMES 'utf8'");
print "Connected";
}
catch(PDOException $e){
print "Error!! " . $e->getMessage()."<br/>";
die();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.