删除宽字符,Perl

pro*_*nce 5 unicode perl

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

答:通过插座打开宽字符

要么

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

ike*_*ami 11

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

print $sock encode('some_encoding', $text);
Run Code Online (Sandbox Code Playgroud)

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

binmode $sock, ':encoding(some_encoding)';  # once
print $sock $text;
Run Code Online (Sandbox Code Playgroud)

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