删除宽字符,Perl

时间:2011-10-07 06:45:44

标签: perl unicode

我正在尝试使用perl程序通过套接字发送一个String。我收到一个错误,说该文本包含一个宽字符,并且套接字无法处理。有没有办法:

答:通过套接字打开宽字符

B:从字符串中删除所有宽字符?

2 个答案:

答案 0 :(得分:11)

这意味着您正在尝试通过句柄发送文本,但句柄只能传递字节。您需要将文本序列化为字节。具体来说,您希望编码文本。您可以使用Encodeencode功能

print $sock encode('some_encoding', $text);

或者您可以指示套接字为您执行

binmode $sock, ':encoding(some_encoding)';  # once
print $sock $text;

some_encoding替换为套接字另一端所需的编码(例如UTF-8)。

答案 1 :(得分:0)

PerlIObinmode可能会帮助您解决问题