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

如何最好地配置PHP以处理UTF-8网站

左丘子平
2023-03-14
问题内容

您将推荐哪些扩展,以及如何最好地配置php以创建一个对所有内容都使用utf-8编码的网站。例如…

  • 页面输出为utf-8
  • 表单提交以utf-8编码的数据
  • 字符串数据的内部处理(例如,与数据库对话时)也都在utf-8中。

看来php目前无法很好地应对多字节字符集。到目前为止,我已经知道mbstring看起来像是一个重要的扩展。

这值得麻烦吗..?


问题答案:

带有Unicode内容的PHP的假定问题有些夸大了。自1998年以来,我一直在从事多语言网站的开发,但直到我在某个地方(很多年以后才知道)之前,我才知道可能存在问题。

这对我来说很好:

Apache配置(在httpd.conf或.htaccess中)

AddDefaultCharset utf-8

PHP(在php.ini中)

default_charset = "utf-8"
mbstring.internal_encoding=utf-8
mbstring.http_output=UTF-8
mbstring.encoding_translation=On
mbstring.func_overload=6

的MySQL

CREATE使用utf8_*排序规则的数据库,让表继承数据库排序规则并使用以下命令开始每个连接"SET NAMES utf8"

HTML(在HEAD元素中)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


 类似资料:
  • 问题内容: 网络服务器使用utf-8编码提供响应,所有文件都使用utf-8编码保存,我所知的所有设置都已设置为utf-8编码。 这是一个快速程序,用于测试输出是否有效: 该程序的输出为: 呈现为: 我可能做错了什么?我必须告诉DomDocument正确处理utf-8的具体程度是多少? 问题答案: 需要一个HTML字符串。 HTML 根据其规范使用默认的编码(ISO拉丁字母1号)。那是因为更长,请参

  • 问题内容: 昨天我对一个问题的回答之一是建议我确保我的数据库可以正确处理UTF-8字符。我该如何使用MySQL? 问题答案: 更新: 简短答案-您几乎应该始终使用字符集和排序规则。 更改数据库: 看到: 亚伦对此答案的评论如何使MySQL正确处理UTF-8 utf8_general_ci和utf8_unicode_ci有什么区别 转换指南:https : //dev.mysql.com/doc/r

  • 问题内容: 下面是测试程序,包括一个汉字: 以下是结果,请看json.dumps将utf-8转换为原始数字! 为什么这坏了?还是我错了? 问题答案: 您应该阅读json.org。完整的JSON规范在右侧的白框中。 生成的JSON没有错。允许生成器生成UTF-8字符串或纯ASCII字符串,在这些字符串中使用符号转义字符。在您的情况下,Python 模块决定转义,并使用转义符号。 顺便说一句:任何符合

  • 问题内容: 为了找出C ++是否适合我的项目,我想测试UTF-8功能。根据参考,我构建了以下示例: 但是,当我输入UTF-8字符时,它的行为不正确: 它不仅不打印,而且立即退出。告诉我没有坠机事故,但出口正常,但是我很难相信。 问题答案: 在Linux上不要使用wstring。 std :: wstring VS std :: string 看看第一个答案。我确定它能回答您的问题。 什么时候应该在

  • 我有一个场景,我想通过会话ID登录到自定义Log4j Appender。换句话说,我想为一个包(例如com.foo.bar)设置一个记录器,然后追加自定义Appender。只有当一个请求带有相同的会话标识时,我才希望记录要为匹配会话标识的Appender编写的消息。当我打开日志记录时,我们必须动态地添加一个Appender,并将其名称设置为会话我想做的是有一个预先配置的Appender,我从log

  • 问题内容: 我有一个PHP脚本,名为: http://cyber- flick.com/apiMorpho.php?method=getMorphoData&word=kot 以纯文本显示一些数据: 如您所见,在适当的字符位置上有很多“忙碌”。我想做的是以某种方式显示此内容,以便人们在浏览器中看到正确的UTF-8字符。 您可以将其封装在HMTL标签中并以元UTF-8编码进行设置,但是由于将从该脚本