Преобразование кодировки символов в С++

У меня есть веб-сайт, который позволяет пользователям вводить имена пользователей.

Проблема здесь в том, что код на С++ предполагает, что кодировка браузера — Западная Европа, и преобразует строку, полученную из текстового поля имени пользователя, в юникод для сравнения со строкой, хранящейся в базе данных.

с правильной установленной кодировкой браузера символ úser принимается как %FAser и корректно преобразуется в úser в программе, однако с настройками браузера, установленными на UTF-8, строка принимается как %C3%BAser, а затем преобразован в úser из-за кода, преобразующего C3 и BA в отдельные символы.

Есть ли способ преобразовать пример %c3%BA в ú, обеспечив при этом правильное преобразование?


person user2724841    schedule 29.08.2013    source источник
comment
Можете ли вы опубликовать код?   -  person Jesse Good    schedule 29.08.2013
comment
Прежде всего, нужно определить кодировку браузера, чтобы вы могли сделать правильный выбор. Вы просите помощи в этом, или вы поняли это и просите помощи в преобразовании UTF-8?   -  person john    schedule 29.08.2013
comment
Как я могу определить настройки браузера для дальнейшего использования. Я попытался найти заголовки html для кодировки, но не могу найти там кодировку.   -  person user2724841    schedule 29.08.2013
comment
Проблема сейчас будет заключаться в преобразовании UTF-8   -  person user2724841    schedule 29.08.2013
comment
Некоторое время назад я написал код преобразования UTF-8 в UTF-16 и разместил его здесь. stackoverflow.com/questions/7153935/ . Однако это не поможет с кодировкой URL. (Я предполагаю, что то, что вы называете Unicode, на самом деле является UTF-16, что имело бы смысл на компьютере с Windows, поскольку Windows использует UTF-16 внутри, но если нет, вам нужно более точно указать, что ваша цель для преобразования)   -  person john    schedule 29.08.2013
comment
Код уже выложен   -  person user2724841    schedule 29.08.2013


Ответы (1)


Вы можете использовать библиотеку ICU для преобразования почти во все используемые кодировки. Эта библиотека также предоставляет множество средств для работы со строками.

person user2729070    schedule 29.08.2013