Обнаружение латинских символов в строке utf8 - PullRequest
0 голосов
/ 24 августа 2011

Я получаю данные из базы данных в кодировке utf8.Но почему-то некоторые старые данные содержат символы латинского алфавита.

Так что это

$encod = mb_detect_encoding($string, 'UTF-8', true);

всегда правильно.

Безопасно ли всегда использовать utf8_decode () для проверки символов латинского алфавита1как 'äöüß' ???

$string = utf8_decode($string);
$search = Array(" ", "ä", "ö", "ü", "ß", "."); //,"/Ä/","/Ö/","/Ü/");
$replace = Array("-", "ae", "oe", "ue", "ss", "-"); //,"Ae","Oe","Ue");
$string = str_replace($search, $replace, strtolower($string));

С уважением

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Кажется, что работает без utf8_encoding:

<?php
   $string = "äöüß";
   $search = Array(" ", "ä", "ö", "ü", "ß", "."); //,"/Ä/","/Ö/","/Ü/");
   $replace = Array("-", "ae", "oe", "ue", "ss", "-"); //,"Ae","Oe","Ue");
   $string = str_replace($search, $replace, strtolower($string));
   echo $string;
?>

DEMO: http://codepad.org/HGTyHkBU

0 голосов
/ 24 августа 2011

Используйте htmlspecialchars (); это безопаснее для работы. Дополнительная информация:

http://php.net/manual/en/function.htmlspecialchars.php

...