Php 存储和输出带有重音符号的文本
我在数据库里有一些文本。我用法语和英语。法语有口音,还有一些特殊的字符,如Php 存储和输出带有重音符号的文本,php,mysql,html-entities,Php,Mysql,Html Entities,我在数据库里有一些文本。我用法语和英语。法语有口音,还有一些特殊的字符,如ç。我使用Mamp、MySQL和PHP 我有latin1_swedish-ci排序规则(默认)。我尝试了utf8\u general\u ci,结果是一样的。 如果我在html页面中使用,我会在标题中使用: 例如,在数据库中,我有“瞧” 当我将数据库中的文本回显到html时: $con = mysqli_connect("localhost","root","root"); if (!$con) { die('The
ç
。我使用Mamp、MySQL和PHP
我有latin1_swedish-ci排序规则(默认)。我尝试了utf8\u general\u ci
,结果是一样的。
如果我在html页面中使用,我会在标题中使用:
例如,在数据库中,我有“瞧”
当我将数据库中的文本回显到html时:
$con = mysqli_connect("localhost","root","root");
if (!$con) {
die('The connexion failed: ' . mysqli_error());
}
if (!mysqli_select_db($con, 'prova')){
echo "Connection with database was not possible";
}
$result = mysqli_query($con, "SELECT * FROM test1
WHERE id='1' ")
or die(mysqli_error());
while($row = mysqli_fetch_array($result)) {
$text = $row['first'];
echo $text; //I see: voil�
echo htmlentities($text); //I see nothing
echo utf8_encode($text); //This works: I see voilà
}
htmlentities
不起作用李>
utf8_encode()代码>要走的路?当我从数据库输出一些东西时,我必须始终使用它?如果排序规则已经是UTF8
,为什么我必须使用它?有没有更好的方法在MySQL数据库中存储和输出带有重音符号的文本
连接到DB后,应将客户端字符集设置为UTF8:
mysqli_set_charset($con, "UTF8");
否则,mysql客户端会将UTF8“voilá”转换为拉丁语(因为这似乎是默认值)
要么告诉客户我想要UTF8格式的所有内容,要么使用默认的拉丁语1,然后自己调用UTF8_encose($text)将其逐个转换为@ItsGreg的可能副本。另一个没有回答我的问题。我找到了一个类似的解决方案,但问题是如果字符串是
voilá
,为什么htmlentities()
不应返回任何内容。phpMyAdmin中的场是什么样子的?@rybo111:在phpMyAdmin中,我只有一个:瞧。只是为了测试一下。为什么它什么也不返回?你能试试mysqli\u set\u字符集($con,“utf8”)在查询之前,您的连接在哪里?