我需要升级一个大型PHP网站以支持UTF-8 ...作为第一步,我想更改所有PHP代码以使用mb_函数。即使没有其他内容已更改为多字节,我是否可以立即进行操作呢? (即它不会破坏任何东西,对吧?)
在继续进行下一步(升级数据库等)之前,我想先完成PHP的工作,并使代码在我现有的非多字节站点上运行并运行。
答案 0 :(得分:1)
您可以使用自定义函数来获得希望沉迷于其他机制的结果。我建议5种方法:
1)一个自定义函数,该函数读取旧字符串并将其转换为8位get_string_utf8()
。用法很简单:
function get_string_utf8($string) {
return mb_convert_encoding($string, 'UTF-8', mb_detect_encoding($string, 'UTF-8, ISO-8859-1', true));
}
$old_string = "Elämä on kaunis ja mahtavia yllätyksiä"; //Life is beautiful and can hold nice surprises
$new_string = get_string_utf8($old_string);
2)一个自定义函数,该函数读取旧文件并使用unicode(8位)file_get_contents_utf8()
将其打开。用法很简单:
function file_get_contents_utf8($file) {
$content = file_get_contents($file);
return mb_convert_encoding($content, 'UTF-8', mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
}
$old_file = "Life_is_beautiful.html";
$new_file = file_get_contents_utf8("$old_file");
3)始终使用:<?php ini_set('default_charset', 'UTF-8'); ?>
在您的php文件的开头。
4)如果有可能,您应该通过(通过php编写过程)将8位文件(不包含BOM)保存为unicode(UTF-8)直接提供8位文件
5)始终使用正确的元:<meta charset="UTF-8">
我希望这会有所帮助。