我有一个带有一个文本框的表单(ProductTitle)
如果我在文本框中编写示例“Étuit”并单击“保存”,我将数据发布在名为“产品”的表中。 ProductTitle数据库中的结果是τtuit。我关注的是特殊性格。我没有把É放在数据库中,而是得到了É
当我将数据库中的产品标题(“ttuit”)加载到跨度中时。这表明正确。
但是当我在文本框中加载它以编辑产品标题时,显示Étuit。
任何人都知道原因。
我把它放在html头
中<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
注意:当我在表单上单击“保存”时,数据将使用jquery ajax方法发布。
答案 0 :(得分:10)
尝试在使用数据库之前设置客户端编码。
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'
?>
答案 1 :(得分:9)
可能发生的事情是客户端的默认字符集未设置为UTF-8,因此您将在一个方向或另一个方向上进行转换。这有很多种方式here:
在实例化连接之后,“SET NAMES utf8”的初始化查询通常会解决此问题,但请确保您认为存储的内容(utf8)实际上是存储的内容。如果没有,你可能会有一个清理工作。
答案 2 :(得分:7)
答案 3 :(得分:0)
在代码中的每个连接之前不要打扰SET NAMES,可以使用mysql连接字符串中的参数:
"jdbc:mysql://hostAddress:port/databaseName?characterEncoding=UTF-8"
答案 4 :(得分:0)
这篇文章解释了如何在PHP和MySQL中配置和使用UTF-8。 希望节省您的时间。
答案 5 :(得分:0)
这些对我有用:
在HTML标题中:
ENTRYPOINT ["/bin/foo"]
PHP连接后:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
答案 6 :(得分:0)
当我使用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);
}
答案 7 :(得分:0)
我对此也遇到了困难,但是以下内容始终对我有用!在处理数据之前,请确保按如下所示设置编码:
<div class="form-group">
<label asp-for="InputModel.Title" class="control-label"></label>
<input asp-for="InputModel.Title" class="form-control" />
<span asp-validation-for="InputModel.Title" class="text-danger"></span>
</div>