Is the utf-8 charset of Apache specified by “AddDefaultCharset utf-8”, full utf-8 or not?
根据我的观察,对于MySQL,默认的字符集utf8有点误导性,它不支持完整的Unicode,因为它不能存储四字节的utf-8编码字符。实际上是utf8mb4字符集,它是全Unicode(宽度可变)。
阿帕奇的情况如何?如果我说"adddefaultcharset utf-8",它是指完整的unicode,比如mysql的utf8mb4,还是指精简版的utf-8,比如mysql的utf8,它不支持可能的4MB空间。
谢谢
Apache不关心实际的响应主体内容;当您指定
指令它只是添加一个对应的charset=utf-8响应头。就是这样。
- 当然,响应头会影响某些东西,否则它的目的是什么?另外,这个响应头引用了什么utf-8字符集?
- @用户只有一个utf-8字符集。mysql的非utf-8utf8是一个令人遗憾的例外。正在设置的标题告诉浏览器以下内容的其余部分的编码方式。
- @用户1796995:报头的目的是告诉客户正文是用什么编码的。所以-数据是按原样提供的(正确生成数据是您的责任);接下来,正确处理数据是客户的工作(是客户机(浏览器?)。开发人员正确处理的责任)。阿帕奇没有失败的地方。
- @泽克小姐啊,我想我明白了。所以,Apache所做的就是告诉WebClient这些数据是UTF-8,现在您完成了您的工作并正确地处理它。所以,如果我使用的是PHP,它将使用UTF-8对正文进行编码?不是Apache。Apache只是告诉Web客户机它是UTF-8,Web客户机(如浏览器)必须适当地处理这个问题?我明白了吗?
- @用户1796995:是的,没错。