字符集编码 {#charset}
字符集编码 {#charset.encoding}
文本数据有各种各样的编码,其中最流行的是 ISO-8859-1 (Latin1) 和 UTF-8。除非你改变 Smarty::$_CHARSET,否则如果 多字节字符串 可用,Smarty 将识别 UTF-8 为内部字符集,如果不可用,则识别 ISO-8859-1。
注意
ISO-8859-1自 PHP 诞生以来一直是其默认的内部字符集。Unicode 自 1991 年以来一直在发展。从那时起,它已经成为统一所有字符集的字符集,因为它能够编码大多数已知的字符,甚至跨不同的字符系统(拉丁文,西里尔文,日文,...)。UTF-8是 Unicode 最常用的编码,因为它允许以最小的大小开销引用数千个字符。由于 Unicode 和 UTF-8 现在非常广泛,因此强烈建议使用它们。
注意
自 Smarty 3.1 版本以来,Smarty 的内部和核心插件是真正的 UTF-8 兼容的。为了实现 Unicode 兼容性,需要 多字节字符串 PECL。除非你的 PHP 环境提供了这个包,否则 Smarty 将无法提供全面的 UTF-8 兼容性。
// 使用日本字符编码
if (function_exists('mb_internal_charset')) {
mb_internal_charset('EUC-JP');
}
require_once 'libs/Smarty.class.php';
Smarty::$_CHARSET = 'EUC-JP';
$smarty = new Smarty();