查看: 7634|回复: 0
打印 上一主题 下一主题

四种语言的unicode处理简述

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-24 22:54:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
1. Java

内部字符串用Unicode保存,基本上不用关注这个问题。正则表达式、字符计数和字串截取都工作正常。

2. Perl

存在两种字符模式,一个是传统的面向字节的,另一个是面向unicode字符的。在后面一种情况下,Perl在内部用UTF-8编码存储字符串。对于UTF-8字符串,可以使用传统的字符串操作函数,比如length,substr,也可以使用正则表达式,结果确保正确。Perl使用哪种字符模式,主要取决于流的设置,这个设置是通过binmode函数来进行的。对于在程序文本中出现的字符串,当然是以文件本身的编码方式存储的。经常发生的情况是,程序本身用ANSI编码编写(比如CP936),但是处理汉字的时候需要转换成UTF-8,这时候可以用Encode模块里的decode函数讲字符串转成UTF-8。反过来,encode函数可以把UTF-8编码的Perl字符串转换成CP936,这样就能够在控制台上打印出来。

3. Python

为了支持Unicode,整个做了一个Unicode内建对象,把string对象的全部方法重新实现了一遍。Python对Unicode的支持比较简单。比如 s = unicode('给他5个dollar!", 'gbk'),就能得到一个unicode对象。上面调用中的'gbk'参数是说传过去的字符串是用GBK编码的。对于得到的这个unicode对象,调用string同名方法,所有的结果都是正确的。

4. Ruby

Ruby对于Unicode的支持最差,或者说根本没有支持。Ruby始终只是把String看成是字节序列。使用Ruby处理中文,要用iconv库转来转去。Ruby的正则表达式对unicode不友好。新加入Rails的一个库据称可以解决Ruby unicode支持的问题,不过代价是三十倍的性能下降。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表