PHP - UTF8到基本编码的改动

时间:2015-02-23 07:55:06

标签: php encoding utf-8 character-encoding php-5.5

所以我试图将á,é等拉丁字符转换为非拉丁音译(a,e等)我知道有以下内容: PHP replacing special characters like à->a, è->e

但他们似乎都没有帮助......这就是我所拥有的以及他们所产生的结果。

echo $this->data['last_name'];
$last_name = iconv('UTF-8', 'ISO-8859-1//TRANSLIT//IGNORE', $this->data['last_name']);
echo $last_name;
$last_name = mb_convert_encoding($this->data['last_name'], 'ISO-8859-1');
echo $last_name;
$last_name = iconv('UTF-8', 'ascii//TRANSLIT//IGNORE', $this->data['last_name']);
echo $last_name;

-----

Dérmenjian
D�rmenjian
D�rmenjian
D?rmenjian

知道我做错了什么,有可能如何修复它?我总是可以做一个大规模的阵列,但我更喜欢这种问题的程序化方法......

(不确定它有所作为,但我们使用的是PHP 5.5)

3 个答案:

答案 0 :(得分:0)

原来解决方案是没有正确设置区域设置。根据: http://php.net/manual/en/function.iconv.php#74101 默认值是我服务器上的C,所以通过执行以下操作我得到了它的工作:

setlocale(LC_ALL,'en_US.UTF8');

我之前曾尝试'en_US'而且失败了。

答案 1 :(得分:0)

或者您只是使用:

str_replace(array("á", "é"), array("a", "e"), $subject);

答案 2 :(得分:0)

您可以使用“UTF8 :: str_transliterate” - >你可以通过composer安装它 - > https://packagist.org/packages/voku/portable-utf8

例如:UTF8 :: str_transliterate('déjàσσςiıii')// deja sss iiii

...或者您可以使用 - > https://packagist.org/packages/voku/urlify也可以通过作曲家获得,在这里你可以选择一种语言。

例如:URLify :: filter('Cağaloğlu,çalıştığı,müjde,lazım,mahkûm',60,'tr'); //“Cagaloglu-calistigi-mujde-lazim-mahkum”

Mfg Lars:)