C# HttpRequest Помилка: Незаконна послідовність байтів у введених даних.

У Юніті, коли відправляєш запит через HttpRequest, виникає така помилка:

Illegal byte sequence encounted in the input.

Після ретельного пошуку я знайшов, що більшість відповідей вказують на те, що проблема виникає через наявність корейських символів у шляху до проекту.

pic

Оскільки ім’я користувача було англійським, це не була причина, і в результаті пошуків я дізнався, що під час HttpRequest використовуються імена хостів.

Знайшов функцію, що отримує ім’я локального хоста = ім’я пристрою, і дізнався, що у інших людей все працює добре, а на моєму комп’ютері виникає помилка.

using UnityEngine;  

public class NewBehaviourScript : MonoBehaviour  
{  
 void Start() {  
 Debug.Log(System.Net.Dns.GetHostName());  
 }  
}

pic

ExecutionEngineException: String conversion error: Illegal byte sequence encounted in the input.

Коли я перевірив пристрій, то виявив, що він має ім’я, яке містить корейські символи, "내PC" (Мій ПК).

pic

pic

Коли я виконав DNS.GetHostName, то результат був таким:

pic

Це спрацювало.

Так чи інакше, я з’ясував, що помилка виникає, коли ім’я містить корейські символи.

Додатково я помітив, що навіть якщо в шляху до Юніті є пробіли в таких директоріях, як Program Files, чи корейські символи, помилка не виникає.

Перекладено з: C# HttpRequest Illegal byte sequence encounted in the input. 에러

Leave a Reply

Your email address will not be published. Required fields are marked *