Smarty 是什么?
为何使用?
用例和工作流
语法比较
模板继承
最佳实践
速成课程
目录
文本数据有多种编码,最常见的是 ISO-8859-1(Latin1)和 UTF-8。除非使用SMARTY_RESOURCE_CHAR_SET
常量另行指定,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 兼容性。
示例 11.1:设置不同的字符集编码
// use japanese character encoding if (function_exists('mb_internal_charset')) { mb_internal_charset('EUC-JP'); } define('SMARTY_RESOURCE_CHAR_SET', 'EUC-JP'); require_once 'libs/Smarty.class.php'; $smarty = new Smarty();