Кодировка URL не работает для специального символа. #Android - PullRequest
3 голосов
/ 21 октября 2019

Я работаю над решением, в котором нужно кодировать строку в utf-8 формат, эта строка - не что иное, как имя устройства, которое я читаю, используя BluetoothAdapter.getDefaultAdapter().name.

Для одного из sampple я получил строку типа ABC-& и , кодирующую , которая вернула ABC-%EF%BC%86 вместо ABC-%26. Это было странно до дальнейшей отладки, которая помогла выявить разницу между & and &. Второй - какой-то другой символ, который не может быть закодирован, как ожидалось.

& and & both are different.

Для кодирования пробовал оба URLEncoder.encode(input, "utf-8") и Uri.encode(input, "utf-8"), но ничего не получалось.

Это всего лишь пример, может быть другой символ, который может выглядеть так же, как реальный символ, но не может быть закодирован. Теперь вопрос:

  1. Почему это различие, ведь это чтение некоторых данных с устройства с использованием стандартного API SDK.
  2. Как это можно исправить. Подход и замена реальным символом могут быть подходом, но область действия ограничена, возможно, есть другой неизвестный символ.

Любое предложение вокруг !!

...