- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
从 PHP 5.6 开始,default_charset
字符串被设置为 "UTF-8"
,例如in the php.ini
documentation .它表示该字符串对于早期版本是空的。
当我创建一个 Java 库来与 PHP 通信时,我需要知道当一个字符串在内部作为字节处理时我应该期待哪些值。如果 default_charset
字符串为空并且(文字)字符串包含 ASCII 范围之外的字符,会发生什么情况?我应该期待平台的默认字符编码,还是源文件使用的字符编码?
最佳答案
对于文字字符串——总是源文件编码。 default_charset
值在这里什么都不做。
PHP 字符串是“二进制安全的”,这意味着它们没有任何内部字符串编码。 PHP 中的字符串基本上只是字节缓冲区。
对于文字字符串,例如$s = "Ä"
这意味着字符串将包含在引号之间保存在文件中的任何字节。如果文件以 UTF-8 格式保存,这将等同于 $s = "\xc3\x84"
,如果文件以 ISO-8859-1 格式保存 (latin1) 这相当于 $s = "\xc4"
。
设置 default_charset
值不会以任何方式影响存储在字符串中的字节。
default_charset
做了什么?一些必须将字符串作为文本 处理并且编码感知的函数接受$encoding
作为参数(通常是可选的)。这告诉函数文本在字符串中的编码方式。
在 PHP 5.6 之前,这些可选的 $encoding
参数的默认值要么在函数定义中(例如 htmlspecialchars()
),要么在每个扩展的各种 php.ini 设置中配置分别(例如 mbstring.internal_encoding
、iconv.input_encoding
)。
在 PHP 5.6 中引入了新的 php.ini 设置 default_charset
。旧设置已弃用,所有接受可选 $encoding
参数的函数现在应在未明确指定编码时默认为 default_charset
值。
但是,开发人员有责任确保字符串中的文本实际按照指定的编码进行编码。
链接:
default_charset
)。default_charset
选项的简短介绍。default_chaset
选项的弃用 php.ini 选项列表。关于php - 如果 default_charset 为空,字符集是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345626/
从 PHP 5.6 开始,default_charset 字符串被设置为 "UTF-8",例如in the php.ini documentation .它表示该字符串对于早期版本是空的。 当我创建一
现在我已经能够想出这个: SELECT table_schema AS 'name_db', sum(table_rows) AS 'num_rows_db', SUM(dat
我的每个页面的框架如下: ini_set('mbstring.internal_encoding','UTF-8'); ini_set('mbstring.func_overload',7); hea
我在mysql数据库中设置了utf8 现在显示 +--------------------------+----------------------------+ | Variable_name
我正在尝试让 spring @ResponseBody 始终返回 utf-8。但是我做不了那么久。当我返回简单的文本答案时出现问题: @RequestMapping(value="/test", me
我是一名优秀的程序员,十分优秀!