2016-06-06 8 views
1

Я пытаюсь выполнить запрос HTTP-Get, чтобы получить пользователей в моей базе данных. После возвращения данных из запроса я использую SwiftyJson library, чтобы получить пользователей.Невозможно преобразовать данные в строку вокруг символа

Но, один из пользователей его имя содержит символ «ò» и я получил эту ошибку: Optional(Error Domain=NSCocoaErrorDomain Code=3840 "Unable to convert data to string around character 208." UserInfo={NSDebugDescription=Unable to convert data to string around character 208.})

Вот мой код:

func makeHTTPGetRequest(path: String, onCompletion: ServiceResponse) { 
    let request = NSMutableURLRequest(URL: NSURL(string: path)!) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in 
     if let jsonData = data { 
      var parseError: NSError? 
      let json:JSON = JSON(data: jsonData, error: &parseError) 
      onCompletion(json, parseError) 
     } else { 
      onCompletion(nil, error) 
     } 
    }) 
    task.resume() 
} 
+1

Это, вероятно, означает, что сервер не отправляет данные в UTF-8, закодированный. –

+0

@MartinR спасибо! Теперь это работает !! –

ответ

3

Если я понял проблему, я думаю, что вам нужно установить вывод вашего сервлета на UTF-8. Например, если вы используете Java Servlet вы можете использовать

response.setCharacterEncoding("UTF-8"); 
+1

Отлично! Это сработало! –

1

Вы должны убедиться, что, что передаваемая символьная кодировка идентична ожидаемой парсером. Я предполагаю, что ваша проблема может быть решена путем кодирования выходной строки с помощью UTF-8.

Вы можете проверить свои выходные данные с помощью http://validator.w3.org, если у вас есть возможность использовать URL-адрес вашей базы данных пользователей.