Я знаю, что код ANSI не может отображать код UTF-8, как мне преобразовать ANSI в UTF-8?
Нет такой кодировки, как «ANSI». Если вы имеете в виду ASCII (он же ANSI_X3.4-1968), тогда нет необходимости что-либо делать, потому что ASCII также действителен UTF-8 как есть.
Если контент уже находится в UTF-8 (как заголовок charset подразумевает), тогда преобразование в UTF-8 из другой кодировки не имеет смысла.
Я использую Linux
Если вы имели в виду что вы хотите преобразовать из UTF-8 в ASCII, то я хотел бы указать, что вполне вероятно, что ваш терминал (эмулятор) настроен на использование UTF-8, и в этом случае такое преобразование будет контрпродуктивно. Также обратите внимание, что если в содержимом есть символы, которых нет в целевой кодировке, они не могут быть отображены.
Если это правда, что вам нужно преобразовать между UTF-8 и какой-либо другой кодировкой (и это преобразование, если не из ASCII в UTF-8), тогда вы обнаружите, что C ++ не имеет стандартного способа выполнить такое преобразование. Вы можете либо прочитать спецификации для соответствующих кодировок и самостоятельно реализовать преобразование, что нетривиально и, вероятно, не подходит для ответа на переполнение стека, либо (что почти всегда лучший вариант) вы можете сэкономить время, используя реализация написана кем-то другим.
Что вам действительно, вероятно, сначала нужно сделать, так это обратить внимание на этот заголовок:
Content-Encoding: gzip
И сделать вывод, что ответ не является текстовым, но вместо этого двоичный результат алгоритма сжатия, и вам нужно распаковать его, чтобы сделать его читаемым. Стандартных функций (де-) сжатия в C ++ также нет.