丹麦字母的编码

时间:2021-04-05 17:15:29

标签: php character-encoding

我得到一个城市名称作为 GET 变量。我需要将第一个字母大写。 如果 Get 变量是“herning”,我可以毫无问题地将其设为 H,但如果变量是“ølstykke”,我只能将其设为小写 ø,而不能设为大写 ​​Ø。

header('Content-type: text/html; charset=utf-8');
print strToUpper(mb_substr($_GET["city"], 0, 1));

如果我不将标题设置为 utf-8,我只会得到奇怪的字符。

有什么想法吗?

更新代码

<?php
header('Content-type: text/html; charset=utf-8');
$city = mb_convert_case($_GET["city"], MB_CASE_TITLE, "UTF-8");//Ølstykke
print $city;
$section = file_get_contents('https://api.dataforsyningen.dk/steder?hovedtype=Bebyggelse&undertype=by&prim%C3%A6rtnavn='.$city);
$section = json_decode($section);
print '<pre>';
print_r($section);
print '</pre>';

解决方案:发送到 dataforsyningen 时 $city 周围的 urlencode() 完成了这项工作。

1 个答案:

答案 0 :(得分:0)

使用mb_strtoupper并在mb_substr中指定字符编码

echo mb_strtoupper(mb_substr('ølstykke', 0, 1,'utf-8'));//Ø

在您的情况下,您可能不仅需要第一个字符,还需要其余字符, 所以也许 mb_convert_case 函数可以帮助你。

echo mb_convert_case('ølstykke', MB_CASE_TITLE, "UTF-8");//Ølstykke