gpt4 book ai didi

php - 泰文字符中的 Nominatim 反向地理编码地址显示不正确

转载 作者:行者123 更新时间:2023-11-29 00:25:44 39 4
gpt4 key购买 nike

我在 PHP 中有这些代码来进行反向地理编码[从纬度、经度获取地址]:

<?php

$lon = 100.753;
$lat = 13.69362;

$addr = getAddress($lat,$lon);

echo "Address: ".$addr;

function getAddress($RG_Lat,$RG_Lon)
{
$json = "http://nominatim.openstreetmap.org/reverse?format=json&lat=".$RG_Lat."&lon=".$RG_Lon."&zoom=27&addressdetails=1";
$jsonfile = file_get_contents($json);
$RG_array = json_decode($jsonfile,true);

foreach ($RG_array as $name => $value)
{
if($name == "display_name")
{
$RG_address = $value;
break;
}
}

return $RG_address;
}
?>

结果是这样的字符串:

Short term parking, ท่าอาà¸à¸²à¸¨à¸¢à¸²à¸™à¸ªà¸¸à¸§à¸£à¸£à¸“ภูมิ, สมุทรปราà¸à¸²à¸£, จังหวัดสมุทรปราà¸à¸²à¸£, ราชอาณาจัà¸à¸£à¹„ทย

我将这个字符串保存到 mysql 数据库中,存储它的字段类型是 utf8_general_ci。

我的问题是,从数据库中取出后,如何才能在网络上以泰文正确显示该字符串?

仅供引用,泰文的实际地址是这样的:

Short term parking, ท่าอากาศยานสุวรรณภูมิ, Samut Prakan, Samut Prakan Province, Thailand

谢谢。

最佳答案

似乎您首先存储了错误的字符串,因为您没有正确解码它。如果你看一下 query result in your browser您可以看到结果包含 unicode 转义序列,如 \u0e17\u0e48\u0e32\u0e2d。这些序列必须首先被解码。如果您将它们输入网络转换器,例如 http://rishida.net/tools/conversion/您将开始看到正确的字符。在将字符串存储到数据库中之前,您必须执行类似的转换。

关于php - 泰文字符中的 Nominatim 反向地理编码地址显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19021320/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com