您可以使用IO#set_encoding将套接字的外部编码设置为 UTF-8。
\n\n#!/usr/bin/env ruby\n# -*- coding: utf-8 -*-\n\nrequire \'socket\'\n\nserver_socket = TCPServer.new(\'localhost\', 0)\nThread.new do\n loop do\n session_socket = server_socket.accept\n session_socket.set_encoding \'ASCII-8BIT\' \n session_socket.puts "\xe1\x9a\x80 \xe1\x9a\x81 \xe1\x9a\x82 \xe1\x9a\x83 \xe1\x9a\x84 \xe1\x9a\x85 \xe1\x9a\x86 \xe1\x9a\x87 \xe1\x9a\x88 \xe1\x9a\x89 \xe1\x9a\x8a \xe1\x9a\x8b \xe1\x9a\x8c \xe1\x9a\x8d"\n session_socket.close\n end\nend\n\nclient_socket = TCPSocket.new(\'localhost\', server_socket.addr[1])\nclient_socket.set_encoding \'UTF-8\'\np client_socket.gets\n# => "|\xe1\x9a\x80 \xe1\x9a\x81 \xe1\x9a\x82 \xe1\x9a\x83 \xe1\x9a\x84 \xe1\x9a\x85 \xe1\x9a\x86 \xe1\x9a\x87 \xe1\x9a\x88 \xe1\x9a\x89 \xe1\x9a\x8a \xe1\x9a\x8b \xe1\x9a\x8c \xe1\x9a\x8d\\n"\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1676 次 |
| 最近记录: |