当前位置: 首页 > 面试题库 >

php mysql字符集:存储国际内容的html

朱修真
2023-03-14
问题内容

我对字符集所读的内容完全感到困惑。我正在开发一个接口存储mysql数据库中以html格式格式化的法语文本。

我了解的是,正确显示所有法语特殊字符的安全方法是将它们存储为utf8。因此,我为数据库和每个表创建了一个utf8的mysql数据库。我可以通过phpmyadmin看到字符完全按照预期的方式存储。但是通过php输出这些字符会产生不稳定的结果:重音字符被无意义的字符替换。这是为什么

我必须对它们进行utf8_encode或utf8_decode吗?注意:html页面字符编码设置为utf8。

更普遍地讲,存储此数据的安全方法是什么?保存时是否应该结合htmlentities,addslashes和utf8_encode,输出时是否应该结合反斜杠,html_entity_decode和utf8_decode?


问题答案:

MySQL快速执行字符集转换为称为连接字符集的连接。您可以使用sql语句指定此字符集

SET NAMES utf8

或使用特定的API函数,例如mysql_set_charset():

mysql_set_charset("utf8", $conn);

如果正确完成此操作,则无需使用utf8_encode()和utf8_decode()之类的函数。

您还必须确保浏览器使用相同的编码。通常使用简单的标头完成此操作:

header('Content-type: text/html;charset=utf-8');

(请注意,字符集在浏览器中称为 utf-8 ,而在MySQL中称为 utf8 。)

在大多数情况下,仅需记住连接字​​符集和Web字符集,因此,如果仍然不起作用,则可能是您做错了其他事情。尝试尝试一下,通常需要一段时间才能完全理解。



 类似资料:
  • 1. 一面--业务面 描述之前游戏实习里涉及社交媒体的工作内容 长期使用哪些社交媒体,主流社交媒体的区别 最喜欢哪个社交媒体 如果小红书要拉新,应该拉年轻男性还是中年女性? 我回答的是中年女性。因为中年女性的UGC内容经过时间的沉淀,会被渐长的年轻女性群体长期消费,从内容的角度上来看,可以更好地推动生态发展 2. 二面--聊天型业务面 面官一边介绍业务,我一边followup,大家就比较有趣的点进

  • 1)在db中存储资源密钥 优点:不需要复杂的查询来获得已翻译的实体。为您处理后退。 缺点:管理员用户很难管理翻译(每当我的更改时,必须部署资源文件)。 2)使用实体类型 null null

  • 5.27投递 6.2面试 流程还是很快的 面试过程⬇️ 1. 自我介绍(她嫌我自我介绍短 哭了 是我太菜) 2. 展开说了上一段在丁香的新媒体运营实习 内容经验总结之类的 3. 追问实习中的转化 4. 自己有做过自媒体账号吗? 5. 在海外常用社媒(我说Instagram) 6. 说一下Insta twitter telegram Facebook这些平台特点(我还加了discord WhatsA

  • 产品:日本等地上线的社交软件,种草赛道 总结:偏内容中台,跟求职意愿有偏差,面官推荐转岗 1. 一面-业务面 描述之前游戏实习里涉及社交媒体的工作内容 长期使用哪些社交媒体,主流社交媒体的区别 最喜欢哪个社交媒体 如果小红书要拉新,应该拉年轻男性还是中年女性? 我回答的是中年女性。因为中年女性的UGC内容经过时间的沉淀,会被渐长的年轻女性群体长期消费,从内容的角度上来看,可以更好地推动生态发展 2

  • 我有一个项目,使用泰勒级数创建一个科学计算器。此外,我正在分析IEEE 754标准浮点系统的数字。 在我的计算器中,用户选择要单精度还是双精度:我使用浮点和双变量,然后按照ieee 754规范分析数字。 如果用户想要双精度,分析如下: 这给了我 > 这个数字是以二进制格式存储在pc内存中的实际数字吗? 如果不是,我有没有办法得到存储的数字的真实值? 还有,为什么会发生这种情况? 它只打印< cod

  • 下面的代码安全吗?编写类似这样的代码可能很有诱惑力: 该映射仅用于字符串文本。 我认为这是完全合法的,似乎正在起作用,但是我从未见过保证在两个不同地方使用的文字指针是相同的。我无法设法让编译器为具有相同内容的文本生成两个单独的指针,所以我开始怀疑这个假设有多坚定。 我只关心相同内容的文字是否可以有不同的指针。或者更正式地说,上面的代码可以除外吗? 我知道有一种方法可以编写代码来确保它有效,我认为上