C++ 在c+中转换字符编码+;

C++ 在c+中转换字符编码+;,c++,utf-8,character-encoding,latin1,C++,Utf 8,Character Encoding,Latin1,我有一个允许用户输入用户名的网站 这里的问题是C++中的代码假定浏览器编码是西欧,并将从用户名文本框接收的字符串转换为Unicode,以与数据库中存储的字符串进行比较。 使用正确的浏览器编码设置,字符úser作为%FAser接收,并在程序中正确转换为250ser 但是,当浏览器设置设置为UTF-8时,字符串作为%C3%BAser接收,然后由于代码将C3和BA转换为单独的字符而转换为úser 是否有一种方法可以将示例%c3%BA转换为ú,同时确保进行了正确的转换?您可以使用在几乎所有可用编码之间

我有一个允许用户输入用户名的网站

这里的问题是C++中的代码假定浏览器编码是西欧,并将从用户名文本框接收的字符串转换为Unicode,以与数据库中存储的字符串进行比较。 使用正确的浏览器编码设置,字符úser作为%FAser接收,并在程序中正确转换为250ser 但是,当浏览器设置设置为UTF-8时,字符串作为%C3%BAser接收,然后由于代码将C3和BA转换为单独的字符而转换为úser


是否有一种方法可以将示例%c3%BA转换为ú,同时确保进行了正确的转换?

您可以使用在几乎所有可用编码之间进行转换。该库还提供了许多字符串操作工具。

您可以发布代码吗?首先要检测浏览器编码是什么,以便做出正确的选择。您是在寻求有关这方面的帮助,还是您已经了解了这一点,并且正在寻求有关UTF-8转换的帮助?我如何检测浏览器设置以供将来参考。我已经尝试搜索html标题进行编码,但似乎在那里找不到编码。现在的问题是UTF-8转换我不久前写了一些UTF-8到UTF-16转换代码,并将其发布在这里。但是,这对URL编码没有帮助。(我假设您所谓的Unicode实际上是UTF-16,这在Windows机器上是有意义的,因为Windows在内部使用UTF-16,但如果不是,您需要更精确地指定转换的目标)