ign*_*low 2 php encoding utf-8
我正在使用以MacRoman char编码保存的CakePHP网站.我想将所有文件更改为UTF-8以进行国际化.对于网站中的所有其他文件,这工作正常.但是,在core.php文件中有一个安全盐,它是一个带有特殊字符的字符串("!:*etc.).当我将这个文件保存为UTF-8时,盐被破坏.我可以用git,但这是一个烦恼.
有谁知道如何将字符串从MacRoman转换为UTF-8?
你没有提供足够的信息来证实这一点,但我想盐是以二进制形式使用的.在这种情况下,如果更改此二进制流,更改文件的编码将损坏salt,即使字符已正确转换.
由于前128个字符在UTF-8和Mac OS Roman中相似,因此您不必担心盐是否仅使用这些字符编写.
让我们说盐在某处:
$salt = "a!c‡Œ";
Run Code Online (Sandbox Code Playgroud)
你可以写:
$salt = "a!c\xE0\xCE";
Run Code Online (Sandbox Code Playgroud)
您可以将所有映射到十六进制表示,因为它可能更容易自动化:
$salt = "\x61\x21\x63\xE0\xCE";
Run Code Online (Sandbox Code Playgroud)
见这里的表格.
以下代码段可以自动执行此转换:
$res = "";
foreach (str_split($salt) as $c) {
$res .= "\\x".dechex(ord($c));
}
echo $res;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3471 次 |
| 最近记录: |