Кодирование проблемы HttpURLConnection [дубликат]

Я только что прошел ту же проблему и нашел хорошее решение в руководствах PHP.

Я изменил всю свою кодировку файла на UTF8, а затем по умолчанию на мое соединение. Это решило все проблемы.

if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
   printf("Current character set: %s\n", $mysqli->character_set_name());
}

Просмотреть источник

23
задан ErikR 29 May 2013 в 17:39
поделиться

2 ответа

1) Для этого типа носителя не задан параметр кодировки.

2) Инструкции по кодированию см. в https://www.w3.org/TR/html5/sec- forms.html # приложение-х-WWW-форм-urlencoded-кодирования-алгоритм . [/ д2]

26
ответ дан Guillaume Husta 28 August 2018 в 02:45
поделиться

Обратите внимание: что на шаге 2 вышеупомянутой ссылки говорится: «В противном случае пусть выбранная кодировка символов будет UTF-8». (см. http://www.w3.org/TR/html5/forms.html#application/x-www-form-urlencoded-encoding-algorithm .)

Я также считаю, что это, по-видимому, указывает на то, что для пользовательских агентов лучше использовать UTF-8?

http://www.w3.org/TR/html40/appendix/notes. html # non-ascii-chars

Вот что он говорит: B.2.1 Не-ASCII-символы в значениях атрибута URI

Хотя URI не содержат значений, отличных от ASCII (см. [URI], раздел 2.1), авторы иногда указывают их в значениях атрибутов, ожидающих URI (т. е. определенные в% URI, в DTD). Например, следующее значение href является незаконным:

...

Мы рекомендуем, чтобы пользовательские агенты применяли следующее соглашение для обработки символов, отличных от ASCII, в таких случаях:

Represent each character in UTF-8 (see [RFC2279]) as one or more bytes.
Escape these bytes with the URI escaping mechanism (i.e., by converting each byte to %HH, where HH is the hexadecimal notation of the byte value).

Эта процедура приводит к синтаксически законному URI (как определено в [RFC1738], раздел 2.2 или [RFC2141], раздел 2), который не зависит от кодировки символов, которой мог быть HTML-документ, содержащий URI перекодировано.

Примечание. Некоторые более старые пользовательские агенты тривиально обрабатывают URI в HTML, используя байты кодировки символов, в которой был получен документ. Некоторые старые HTML-документы полагаются на эту практику и ломаются при перекодировке. Пользовательские агенты, которые хотят обрабатывать эти старые документы, должны при получении URI, содержащих символы вне юридического набора, сначала использовать преобразование на основе UTF-8. Только если результирующий URI не разрешит, если они попытаются создать URI на основе байтов кодировки символов, в которой был получен документ.

Примечание. То же преобразование, основанное на UTF-8, должно применяться к значениям атрибута name для элемента A.

4
ответ дан atom88 28 August 2018 в 02:45
поделиться
Другие вопросы по тегам:

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