Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 存储和输出带有重音符号的文本_Php_Mysql_Html Entities - Fatal编程技术网

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”)
    在查询之前,您的连接在哪里?