웹 서비스를 사용하여 아랍어를 영어로 번역하려고합니다. URL을 생성 할 때 오류가 발생합니다. 나는 이러한 경우 정의했습니다 :아랍어 텍스트 URL 구문 분석 오류
enum MyErrors: Error {
case urlParsingError(String)
case nonDictonaryObjectReturned(Any)
}
을 그리고 내 코드는 다음과 같습니다
func translateWord (text: String, ToLan:String) {
// the text is "مرحبا" and ToLan is "en"
do {
let jsonString = "https://translate.yandex.net/api/v1.5/tr.json/translate?key=apikey&text=\(text)&lang=\(ToLan)"
guard let url = URL(string: jsonString) else {
throw MyErrors.urlParsingError(jsonString)
}
let data = try Data(contentsOf: url, options: Data.ReadingOptions())
let jsonObject = try JSONSerialization.jsonObject(with: data,options: .allowFragments)
guard let dictionary = jsonObject as? [AnyHashable: Any] else {
throw MyErrors.nonDictonaryObjectReturned(jsonObject)
}
let result = dictionary["text"] as? [Any]
let translattedSTR = result?.first as? String
let encodedData = translattedSTR?.data(using: String.Encoding.utf8)!
print(encodedData!)
self.textresult.text = translattedSTR
} catch {
print("caught error \(error)")
}
하지만 불행히도, 그것은 인쇄
잡은 오류 urlParsingError (출력 URL)
또한, 내 구조는 [이]처럼 보입니다 (https://translate.yandex.net/api/v1.5/tr.json/translate?key= apikey & 텍스트 = مرحبا & lang = en)
임 유창하지,하지만 당신은 확인되고있는' "مرحبا"'점이다 utf8로 제대로 번역 되었습니까? 아마 그 일이 일어난 것 같아요. 그러나 아랍어 문자/단어가 http 형식에서 시각적 양식 (' "مرحبا"')으로 바뀌는 방법을 모르겠습니다./ – murphguy
가드 문 앞에 URL을 인쇄 해보십시오. – murphguy
@murphguy, 나는 아랍도 아닙니다. , 나는 아랍어를 말하지 않지만, 이것은 프로젝트를위한 것입니다. "مرحباا"때문에 브라우저에 잘 작동하지만 xcode에는 맞지 않습니다. –