【发布时间】:2009-08-20 10:31:22
【问题描述】:
我正在编写一个 PHP 服务器,而客户端正在以特定的字符编码发送数据。现在,我想告诉服务器以相同的字符编码集读取和写入数据。
我应该如何为 PHP 的 socket_read 和 socket_write 方法指定字符编码集?
【问题讨论】:
标签: php sockets character-encoding
我正在编写一个 PHP 服务器,而客户端正在以特定的字符编码发送数据。现在,我想告诉服务器以相同的字符编码集读取和写入数据。
我应该如何为 PHP 的 socket_read 和 socket_write 方法指定字符编码集?
【问题讨论】:
标签: php sockets character-encoding
这些函数传输未转换的字符串(即逐字节),因此您无法设置字符编码。但这也意味着,您不必这样做。您将在另一侧使用完全相同的编码获得完全相同的字符串。
您可以在发送之前/之后使用mb_convert_encoding() 转换字符串。
【讨论】:
PHP 具有接近于零的自动字符编码支持。您必须跟踪任何给定字符串的编码,并确保每次进入或离开您的代码时都将其转换为适当的编码。这样做的好方法是确定所有内部字符串都采用某种编码(例如 PHP),并在输入的过程中将每个传入的字符串转换为该编码。
(或使用其他语言)
【讨论】: