Недопустимый байт 1 из 1-байтовой последовательности UTF-8: RestTemplate [duplicate]

Большинство этих ответов говорят пользователям, как добавить заголовки CORS на сервер, который они контролируют.

Однако, если вам нужны данные с сервера, который вы не контролируете на веб-странице, одним из решений является создание тег сценария на вашей странице, установите атрибут src в конечную точку api, у которой нет заголовков CORS, затем загрузите эти данные на страницу:

window.handleData = function(data) {
  console.log(data)
};

var script = document.createElement('script');
script.setAttribute('src','https://some.api/without/cors/headers.com&callback=handleData');
document.body.appendChild(script);
23
задан Ashish Aggarwal 10 April 2014 в 08:25
поделиться

8 ответов

Как исправить эту проблему?

Прочитайте данные, используя правильную кодировку символов. Сообщение об ошибке означает, что вы пытаетесь прочитать данные как UTF-8 (намеренно или потому, что это кодировка по умолчанию для XML-файла, который не указывает <?xml version="1.0" encoding="somethingelse"?>), но на самом деле он находится в другой кодировке, такой как ISO- 8859-1 или Windows-1252.

Чтобы иметь возможность сообщить, как вы должны это делать, мне нужно будет увидеть код, который вы используете в настоящее время для чтения XML.

16
ответ дан Ian Roberts 31 August 2018 в 17:43
поделиться

Я столкнулся с этой проблемой из-за Ant build.

. Ant создала файлы и применила filterchain expandproperties к ней. Во время этой фильтрации файлов моя неявная стандартная кодировка по умолчанию, отличная от UTF-8, использовалась для генерации фильтрованных файлов, поэтому символы за пределами своего набора символов не могли быть правильно отображены.

Одним из решений было предоставить Ant с явной переменной среды для UTF-8. В Cygwin перед запуском Ant: export ANT_OPTS="-Dfile.encoding=UTF-8".

0
ответ дан Abdull 31 August 2018 в 17:43
поделиться

Я столкнулся с одной и той же проблемой, и после длительного изучения моего XML-файла я нашел проблему: было несколько невыраженных символов, таких как « ».

0
ответ дан Artsiom Miklushou 31 August 2018 в 17:43
поделиться
  1. Откройте xml в блокноте
  2. Убедитесь, что у вас нет дополнительного места в начале и конце документа.
  3. Выберите «Файл» -> «Сохранить как»
  4. ]
  5. выберите сохранение как тип -> Все файлы
  6. Введите имя файла как abcd.xml
  7. выберите Кодирование - UTF-8 -> Нажмите Сохранить
14
ответ дан Barani r 31 August 2018 в 17:43
поделиться

У меня была эта проблема, но файл был в UTF-8, это было просто так, как-то на персонаже пришел, что не был закодирован в UTF-8. Чтобы решить проблему, я сделал то, что указано в этом потоке, то есть я проверил файл: Как проверить, действительно ли файл UTF-8?

В основном вы выполняете команду :

$ iconv -f UTF-8 your_file -o / dev / null

И если в UTF-8 есть что-то, что не закодировано, оно даст вам строку и строку номера, чтобы вы могли его найти.

1
ответ дан Community 31 August 2018 в 17:43
поделиться

Такие, как я, которые понимают принципы кодирования символов, также читают статью Джоуля , которая смешна, поскольку она содержит неправильные символы в любом случае и до сих пор не может понять, что за черт ( spoiler alert, я пользователь Mac), тогда ваше решение может быть таким же простым, как удаление локального репо и повторное клонирование.

Моя база кода не изменилась с тех пор, как в последний раз она работала нормально, поэтому она сделана нет смысла иметь ошибки UTF, учитывая тот факт, что наша система сборки никогда не жаловалась на это .... до тех пор, пока я не вспомнил, что я случайно отключил свой компьютер несколько дней назад с помощью IntelliJ Idea и всего, что работает (Java / Tomcat / Hibernate)

Мой Mac сделал блестящую работу, притворяясь, что ничего не произошло, и я вел себя как обычно, но основная файловая система была каким-то образом повреждена. Потратил весь день, пытаясь понять это. Надеюсь, это поможет кому-то.

0
ответ дан felipe 31 August 2018 в 17:43
поделиться

Я получал xml как String и используя xml.getBytes () и получаю эту ошибку. Переход на xml.getBytes (Charset.forName («UTF-8»)) работал для меня.

2
ответ дан John 31 August 2018 в 17:43
поделиться

Попробуйте:

InputStream inputStream= // Your InputStream from your database.
Reader reader = new InputStreamReader(inputStream,"UTF-8");

InputSource is = new InputSource(reader);
is.setEncoding("UTF-8");

saxParser.parse(is, handler);

Если это что-то еще, кроме UTF-8, просто измените часть кодировки для хорошего.

7
ответ дан LaGrandMere 31 August 2018 в 17:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: