It seems I have another problem with special character and double quotes and so on after this question that has been solved earlier.
I used to use this function that convert symbol like '&' to numberic code for XML,
function convert_specialchars_to_xmlenties($string)
{
# in order to convert <, >, &, ' and ", include them into the square brackes [<\'"&>\x80-\xff]
$output = preg_replace('/([<\'"&>\x80-\xff])/e', "'&#' . ord('$1') . ';'", $string);
# return the result
return $output;
}
So if my input is Judge-Fürstová Mila & Judge-Fürstová Mila
I will get Judge-Fürstová Mila & Judge-Fürstová Mila
But I think since I am using PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
to handle all my special characters, so if my input is something like
Judge-Fürstová Mila & Judge-Fürstová Mila
now will returns,
Judge-Fürstová Mila & Judge-Fürstová Mila
Which is incorrect for XML I think.
So I think I should just convert <, >, &, ' and " only but not other special characters like ü or á
Any ideas I how I can do this? Or maybe I have thought/ understood the problem incorrectly and there are other better ways to solve this problem?
EDIT:
I was wrong, as I just changed the function which only converts <, >, &, ' and "
$output = preg_replace('/([<\'"&>])/e', "'&#' . ord('$1') . ';'", $string);
XML still does not accept the converted code below,
Judge-Fürstová Mila & Judge-Fürstová Mila
I cannot think of any other reason why it does that! Any ideas?