当前位置: 首页 > 知识库问答 >
问题:

存储和输出带有重音的文本

夏季萌
2023-03-14

我在数据库里有一些文本。我用法语和英语。法语有口音,还有一些特殊的字符,如ç。我使用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à
}
  1. 为什么html实体不能工作?
  2. utf8_encode();要走的路吗?当我从数据库输出东西时,我必须总是使用它?如果归类已经是UTF8,为什么我必须使用它?有没有更好的方法来存储和输出带有重音的文本在MySQL数据库中?

共有1个答案

柯昱
2023-03-14

连接到DB后,应将客户端字符集设置为UTF8:

mysqli_set_charset($con, "UTF8");

否则,mysql客户端会将UTF8“voilá”转换为拉丁语(因为这似乎是默认值)。

要么告诉客户我想要UTF8格式的所有内容,要么使用默认的拉丁文1,然后自己调用UTF8_encose($text)逐个转换

 类似资料:
  • 问题内容: 我正在尝试将freetts用于一个简单的Java应用程序,但是我遇到了一个问题,谁能告诉我如何在我的程序中将输出的语音(从文本转换为语音)保存为wave文件。我想通过代码做到这一点。 这是示例提供的示例helloworld应用程序 这段代码可以正常工作,我想将输出保存为磁盘上的音频文件。 谢谢普兰尼 问题答案: 我想出了方法,您只需要简单地使用传递文件名和文件类型,样本声明就应该像这样

  • Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。 还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍)。你可以使用它们中的任一个,而我们在这里将使用cPickle模块。记住,我们把这两个模块都简称为p

  • 问题内容: 如何查看S3中的存储桶中的内容?(即是)? 执行以下操作: 返回: 我如何看其内容? 问题答案: 查看内容的一种方法是:

  • 我用这个代码打API- 像这样,我得到的返回值为200。这意味着我成功点击了网址。但是我必须存储API的输出。我的 API 返回唯一 ID。如何存储输出?

  • 问题内容: 我试图从存储过程中获取简单的输出 和我的MVC 但是当我编译时,在以下部分出现错误: 方法’sp_getrandomnumber’的重载没有接受1个参数 名称“ randoms”在当前上下文中不存在 提前非常感谢希什 问题答案: 您的问题是您的SPROC输出是一个int。 请参见Scott Gu的文章中的以下引用。 “ LINQ to SQL将SPROC中的“ out”参数映射为参考参