Joomla!-开源天空

2008-10-08
首页 专栏热点 Joomla! 源代码分析 [翻译] Joomla! UTF-8 规范 (WIP) 一


[翻译] Joomla! UTF-8 规范 (WIP) 一

E-mail

这两天,字符集处理上遇到了一些问题,翻译了一下Joomla的UTF-8规范,逐渐帖出来。

1. 概述
1.1 UTF-8简介

UTF-8是unicode字符集基础上的变长字符集,长度为1-4个字节。其中大部分语言都可以采用三个字节来表示,第四个字节仅仅用在某些特殊的多语言情况下,这种情况很少。

UTF-8正在成为一种标准,作为unicode的子集,UTF-8的好处是转换为ASCII存储的时候节省空间,互联网上大量使用7为的ASCII交换数据,因此 UTF-8编码能够节省带宽。


1.2 Joomla! UTF-8 实现

多字节字符集使用会在几个方面对Joomla影响:

首先数据库需要支持UTF-8存储。MySQL versions 4.1.2 以上版本支持UTF-8,在一个非UTF-8字符集的数据库中使用 UTF-*编码的数据,可能会导致字符串被截断。

Joomla! 与数据库之间的联系通道应该指定为UTF-8,否则可能发生编码错误。(数据驱动应该是UTF-8编码 译者)

html页面需要指定编码格式。

Joomla php 字符串相关函数需要能处理UTF-8编码,php的传统字符串函数是单字节的,而 mstring扩展并不是每台机器上都有,使用单字节的php字串函数,可能导致数据被破坏。在http://www.phpwact.org/php/i18n/utf-8可以找到可能发生的问题。

1.3 Joomla!中UTF-8 实现策略

1.3.1 安装前的检查
安装时候会检查‘mbstring’的php扩展,如果有这个扩展那么joomla将使用,如果有这个扩展,但是设置不合理来处理UTF-8,那么将会提示用户修改。


1.3.2 数据库兼容

安装时候检查数据库版本,如果支持UTF-8,那么数据库和表将以UTF-8格式创建,如果不是UTF-8,字段的长度将被扩展以避免数据截断。

1.3.3 多字节字符串函数处理

采用JString类封装字符串处理函数,如果支持‘mbstring’,那么将在JString内部采用mbstring,函数,如果不支持,将采用一个纯php的库,这个库比mbstring性能慢一些。

1.3.4 第三方组件扩展规范

第三方组件扩展规范有一些变化,这点以后讨论。



收藏此文章:
Digg! Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! StumbleUpon! Yahoo! Free social bookmarking plugins and extensions for Joomla! websites!

发表您的文章评论

您的姓名 (昵称)
标题:
评分: 很差一般较好很好
评论:
验证码:
请输入验证码