Я хочу преобразовать некоторые символы, прежде чем вставлять их в базу данных, например
Ž, Ć
Я получаю данные с поста и дезинфицирую их на этом
$ime = (string) htmlentities(mysql_real_escape_string($data['txtIme']), ENT_COMPAT,'UTF-8', true);
По какой-то причине я получаю еще Ž, Š в свою базу данных
С http://php.net/manual/en/function.htmlentities.php
все символы, имеющие эквиваленты символов символа HTML, переводятся в эти объекты
Если вы посмотрите на http://www.ascii.cl/htmlcodes.htm
Ž, Ć не имеют эквивалентов символов символа HTML. Š делает. Вот почему
<?php
$string = 'In some reason I get still Ž, Š, Ć into my database';
echo htmlentities($string, ENT_COMPAT,'UTF-8', true);
?>
Производит:
$ php utf.php
In some reason I get still Ž, Š, Ć into my database
В зависимости от того, к чему вы хотите преобразовать, mysql_set_charset()
может использовать функцию, которую вы должны использовать. Используя кодировку UTF-8, вы также можете хранить большинство нестандартных символов.
Однако вы должны быть осторожны с расширением mysql, поскольку он устарел. Вместо этого вы должны взглянуть на mysqli
или PDO
.