我得到一个城市名称作为 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() 完成了这项工作。
答案 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