У меня есть веб-сайт, который позволяет пользователям вводить имена пользователей.
Проблема здесь в том, что код на c ++ предполагает, что кодировка браузера — Западная Европа, и преобразует строку, полученную из текстового поля имени пользователя, в юникод для сравнения со строкой, хранящейся в базе данных.
при правильной настройке кодировки браузера символ úser принимается как% FAser и корректно пользователь в рамках программы
однако с настройками браузера, установленными на UTF-8, строка принимается как% C3% BAser, а затем преобразуется в úser из-за кода, преобразующего C3 и BA в отдельные символы.
Есть ли способ преобразовать пример% c3% BA в ú, обеспечивая при этом правильные преобразования?
Вы можете использовать Библиотека ICU конвертировать практически все используемые кодировки. Эта библиотека также предоставляет множество возможностей для работы со строками.
Других решений пока нет …