首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用perl存储和显示ISO-8859-1和UTF8字符

如何使用perl存储和显示ISO-8859-1和UTF8字符
EN

Stack Overflow用户
提问于 2011-09-09 08:01:18
回答 1查看 743关注 0票数 3

我对此很陌生,对大多数人来说,这可能很容易,但我已经为此挣扎了好几天。

我正在使用perl编写一个web爬虫,web爬虫将使用LWP和一些简单的正则表达式提取某些信息。

这些信息保存在mySQL数据库中,该数据库将在安卓设备上使用。然而,当我测试网页爬虫时,我意识到有些信息是用HTML数字编码(&# 20856;&# 33775 ;)用中文(典華),而有些信息是使用iso-8859-1编码(Zhífú)。我使用PERL::Entities库解决了中文部分,当我将控制台设置为utf8时可以显示该库。然而,其他字母(Zhífú)只能显示在iso-8859-1中。如果我试图在utf8中显示它,它将变成Zh�f�。我的问题是:

如何确定它使用哪种编码,以及如何显示differently?

  • Would,我可以直接将它存储在mySQL中,或者我应该先处理信息(如果我错了,请纠正我,但我的理解是mySQL使用utf8作为默认的language).

  • Would,这会导致在android设备上显示它时会出现一些问题吗?

)。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-09 09:42:21

(Zhífú)只能在iso-8859-1中显示.如果我试图在utf8中显示它,它将变成Zh�f�.

那完全是假的。您可以在iso-8859-1和UTF-8终端/应用程序/任何东西中显示"Zhífú“。事实上,你看到"Zhífú“的事实证明它可以显示在UTF-8中,因为这是一个UTF-8网页。如果要获得"Zh�f�",这是因为在将字符串交给终端/应用程序/任何需要UTF-8的东西之前,没有使用UTF-8对字符串进行编码。

不管怎样,关于这个问题。我假设您是在存储文本,而不是HTML。

破译每一个输入!对所有输出进行编码!那就没问题。

代码语言:javascript
复制
         From the web
     5a 68 c3 ad 66 c3 ba
              |
            decode         Done for you by ->decoded_content (LWP::UA)
              |            or by ->content (WWW::Mech)
              v

         Decoded text      Manipulate as desired
            Zhífú

              |  
            encode         Done for you by DBI
              |  
              v
           Database
5a 68 c3 83 c2 ad 66 c3 83 c2 ba

事实上,解码应该已经由->decoded_content为您完成,编码应该已经由DBI完成,所以我不明白您为什么会有此问题。

当您从数据库中读取并输出到屏幕/任何东西时,也是一样的。

代码语言:javascript
复制
5a 68 c3 83 c2 ad 66 c3 83 c2 ba
           Database
              |
            decode         Done for you by DBI if you use
              |            the ..._utf8 flag for your driver
              v

         Decoded text      Manipulate as desired
            Zhífú

              |  
            encode         use open ':std', ':locale';
              |  
              v
            Screen
5a 68 c3 83 c2 ad 66 c3 83 c2 ba
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7358714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档