将 utf8 字符转换为 iso-88591 并在 PHP 中返回
我的一些脚本使用了不同的编码,当我尝试将它们组合起来时,这已经成为一个问题.
Some of my script are using different encoding, and when I try to combine them, this has becom an issue.
但我不能改变他们使用的编码,相反我想改变脚本 A 结果的编码,并将其用作脚本 B 中的参数.
But I can't change the encoding they use, instead I want to change the encodig of the result from script A, and use it as parameter in script B.
那么:有没有什么简单的方法可以在 PHP 中将字符串从 UTF-8 更改为 ISO-88591?我看过 utf_encode 和 _decode,但它们没有做我想要的.为什么不存在任何utf2iso()"函数或类似函数?
So: is there any simple way to change a string from UTF-8 to ISO-88591 in PHP? I have looked at utf_encode and _decode, but they doesn't do what i want. Why doesn't there exsist any "utf2iso()"-function, or similar?
我不认为我有不能以 ISO 格式写入的字符,所以这应该不是一个大问题.
I don't think I have characters that can't be written in ISO-format, so that shouldn't be an huge issue.
推荐答案
看看 iconv()
或 mb_convert_encoding()
.顺便说一句:为什么不 utf8_encode()
和 utf8_decode()
对你有用吗?
Have a look at iconv()
or mb_convert_encoding()
.
Just by the way: why don't utf8_encode()
and utf8_decode()
work for you?
utf8_decode — 将字符串转换为ISO-8859-1 字符编码为UTF-8 到单字节 ISO-8859-1
utf8_decode — Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1
utf8_encode — 编码 ISO-8859-1字符串转 UTF-8
utf8_encode — Encodes an ISO-8859-1 string to UTF-8
本质上
$utf8 = 'ÄÖÜ'; // file must be UTF-8 encoded
$iso88591_1 = utf8_decode($utf8);
$iso88591_2 = iconv('UTF-8', 'ISO-8859-1', $utf8);
$iso88591_2 = mb_convert_encoding($utf8, 'ISO-8859-1', 'UTF-8');
$iso88591 = 'ÄÖÜ'; // file must be ISO-8859-1 encoded
$utf8_1 = utf8_encode($iso88591);
$utf8_2 = iconv('ISO-8859-1', 'UTF-8', $iso88591);
$utf8_2 = mb_convert_encoding($iso88591, 'UTF-8', 'ISO-8859-1');
所有人都应该这样做 - utf8_en/decode()
不需要特殊扩展,mb_convert_encoding()
需要 ext/mbstring 和 iconv()代码> 需要 ext/iconv.
all should do the same - with utf8_en/decode()
requiring no special extension, mb_convert_encoding()
requiring ext/mbstring and iconv()
requiring ext/iconv.
相关文章