huk*_*kir 2 php character-encoding
我正在尝试解析一个 XML 文件(http://jstryczek.blox.pl/rss2),该文件表示其字符集为 ISO-8859-2。我的数据库是 UTF-8,所以我想把它转换成 UTF-8。
为此,我在字符串上运行以下命令:
$content = iconv('ISO-8859-2', 'UTF-8//TRANSLIT', $content);
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我得到了一个奇怪的编码,所以:
Gdzie s? ró?nice
Run Code Online (Sandbox Code Playgroud)
通过如下:
Gdzie sÄ r????nice
Run Code Online (Sandbox Code Playgroud)
有没有解释为什么波兰字符没有通过?UTF-8 不支持吗?
我通过将字符串更改为 json 来解决此问题,然后将所有波兰语特殊符号替换为 html 代码。我在我的结果下面添加:
$specialChars = [
'\u0105', # ?
'\u0107', # ?
'\u0119', # ?
'\u0142', # ?
'\u0144', # ?
'\u00f3', # ó
'\u015b', # ?
'\u017a', # ?
'\u017c', # ?
'\u0104', # ?
'\u0106', # ?
'\u0118', # ?
'\u0141', # ?
'\u0143', # ?
'\u00d3', # Ó
'\u015a', # ?
'\u0179', # ?
'\u017b', # ?
];
$polishHtmlCodes = [
'ą', # ?
'ć', # ?
'ę', # ?
'ł', # ?
'ł', # ?
'ó', # ó
'ś', # ?
'ź', # ?
'ż', # ?
'Ą', # ?
'Ć', # ?
'Ę', # ?
'Ł', # ?
'Ń', # ?
'Ó', # Ó
'Ś', # ?
'Ź', # ?
'Ż', # ?
];
$result = str_replace($specialChars, $polishHtmlCodes, json_encode($string));
var_dump(json_decode($result));
// prints
// e.g. 'Ró?owe okulary'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21863 次 |
| 最近记录: |