我正在尝试使用perl程序通过套接字发送一个String。我收到一个错误,说该文本包含一个宽字符,并且套接字无法处理。有没有办法:
答:通过套接字打开宽字符
或
B:从字符串中删除所有宽字符?
答案 0 :(得分:11)
这意味着您正在尝试通过句柄发送文本,但句柄只能传递字节。您需要将文本序列化为字节。具体来说,您希望编码文本。您可以使用Encode的encode
功能
print $sock encode('some_encoding', $text);
或者您可以指示套接字为您执行
binmode $sock, ':encoding(some_encoding)'; # once
print $sock $text;
将some_encoding
替换为套接字另一端所需的编码(例如UTF-8
)。
答案 1 :(得分:0)