这是在php数据类型http://php.net/manual/en/language.types.string.php
下的php手册中找到的内容鉴于PHP没有规定字符串的特定编码,人们可能想知道字符串文字是如何编码的。例如,字符串“á”等同于“\ xE1”(ISO-8859-1),“\ xC3 \ xA1”(UTF-8,C形式),“\ x61 \ xCC \ x81”(UTF-8) ,D形式)或任何其他可能的表示?答案是字符串将以脚本文件中编码的任何方式进行编码。因此,如果脚本是用ISO-8859-1编写的,则字符串将以ISO-8859-1编码,依此类推。但是,如果启用了Zend Multibyte,则不适用;在这种情况下,脚本可以用任意编码(明确声明或检测到)编写,然后转换为某种内部编码,然后编码将用于字符串文字。请注意,对脚本的编码存在一些限制(或者在内部编码上,如果启用了Zend Multibyte) - 这几乎总是意味着此编码应该是ASCII的兼容超集,例如UTF-8或ISO-8859 -1。但是请注意,在初始和非初始移位状态下可以使用相同字节值的状态相关编码可能会有问题。
你能简单解释一下这意味着什么吗?感谢
答案 0 :(得分:1)
鉴于PHP没有规定字符串的特定编码,一个 可能想知道字符串文字是如何编码的。例如,是 字符串“á”相当于“\ xE1”(ISO-8859-1),“\ xC3 \ xA1”(UTF-8, Cform),“\ x61 \ xCC \ x81”(UTF-8,D表格)或任何其他可能的 表示?答案是字符串将以任何方式编码 时尚它在脚本文件中编码。因此,如果脚本是 用ISO-8859-1编写的字符串将用ISO-8859-1编码 很快。
这部分声明说,如果您的网页编码为(UTF-8,C形式)而不是“á”将等同于“\ xC3 \ xA1”您在php.ini中指定编码它是您的php的配置文件脚本。
但是,如果启用了Zend Multibyte,则不适用;在那里面 例如,脚本可以用任意编码(即 明确声明或被检测到)然后转换为某个 内部编码,然后是将用于的编码 字符串文字。请注意,有一些限制 编码脚本(或内部编码,应该Zend 启用多字节) - 这几乎总是意味着这种编码 应该是ASCII的兼容超集,例如UTF-8或ISO-8859-1。 但请注意,状态相关的编码所在的字节相同 可以在初始和非初始移位状态中使用值 有问题的。
在这里,他们只是说还有另一个选项来指定你的编码,但现在你是在脚本中进行,但你的编码必须与ASCII超集兼容