加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

解决Perl TK 中文输入,操作问题

发布时间:2020-12-16 00:37:56 所属栏目:大数据 来源:网络整理
导读:写一个tk测试玩意,读取用户输入,判断是否为目录。 代码如下: #!perl -wuse Tk;use strict;use Encode; my $mw = MainWindow-new;$mw-geometry("300x200");$mw-title("Entry Test");my $top_frame = $mw-Frame(-background = "white")-pack(-side = "top")

写一个tk测试玩意,读取用户输入,判断是否为目录。

代码如下:

?

效果如下 :

?

代码?my $str=encode("gb2312",$copied_text);? 将utf8流转为中文的,进行操作(目录判断,或者输出)

?

?

?

utf8编码字串 --(作为字节流)--> perl不知道它是什么编码 ---> decode ('utf8',$foo) ---> perl知道他是utf8编码了,并将其转换为对应的unicode(两个字节)来操作(但实际存储的时候仍是utf8编码)之所以会出现 Wide character in print at 2.pl line 19. 这样的结果,是因为perl知道你输出的变量字符串是utf8编码的多字节字符,你应该通过encode函数将该变量转换成字节流,这样perl就不会出现这个警告综上,可以知道,perl对待外来的数据一律当作字节流处理,通过 decode 函数可以告诉 perl 当前字节流是什么编码,这时 perl 就会把他按照原来对应的编码方式内部解码为 unicode 来操作(此时这串字节流已经被perl当作是有一定意义的unicode字符串来理解了),当你要将操作完的字符串输出的时候,应该将其用encode函数按照相应的编码方式打包成字节流再输出.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读