Я использую схему URL, предоставленную iOS, для запуска моего приложения из внешнего источника, например с веб-сайта. Например, я создал файл HTML, код которого приведен ниже. Строка запроса содержит несколько японских символов.
<html>
<a href="myapp://?appid=12345&destination=奈良県奈良市雑司町406-1">Visit Todaiji</a>
</html>
Мое приложение успешно открывается по этой схеме URL, когда я открываю этот HTML-файл в симуляторе сафари и нажимаю на ссылку «Посетить Todaiji».
Проблема в том, что я получаю этот URL в делегате с открытым URL
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
{
return true
}
URL конвертируется в как показано ниже
myapp://?appid=12345&destination =奈良県奈良市é%E2%80%BA‘å%C2%8F¸ç”º406-1
Я пробовал многие типы кодировок (например, UTF-8, ASCII, nonLossyASCII), чтобы преобразовать строку обратно в японский, но ничего не помогло. Если html-файл открывается в Mac Safari и по ссылке щелкают, то же поведение можно увидеть и в адресной строке Safari. Можно ли вернуть строку на японском языке из URL.