Как установить PHP кодирование символов socket_write и socket_read? - PullRequest
3 голосов
/ 20 августа 2009

Я пишу сервер PHP, а клиент отправляет данные в определенной кодировке символов. Теперь я хочу сказать серверу читать и записывать данные в том же наборе кодировки символов.

Как мне указать набор кодировки символов для PHP socket_read и socket_write методы?

Ответы [ 2 ]

2 голосов
/ 20 августа 2009

Эти функции передают строку без преобразования (то есть побайтно), поэтому вы не можете установить кодировку символов. Но это также означает, что вам не нужно. У вас будет точно такая же строка на другой стороне с точно такой же кодировкой.

Вы можете преобразовать его перед отправкой / после получения строки, используя mb_convert_encoding().

1 голос
/ 20 августа 2009

PHP имеет близкую к нулю поддержку автоматической кодировки символов. Вы должны будете отслеживать, какая кодировка есть у любой заданной строки, и убедиться, что она преобразуется в соответствующую кодировку каждый раз, когда она входит или выходит из вашего кода. Как только удачный способ сделать это - решить, что все целочисленные строки находятся в определенной кодировке (например, PHP), и преобразовать каждую входящую строку в эту кодировку при входе.

(или используйте другой язык)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...