【发布时间】:2013-04-30 09:50:14
【问题描述】:
我需要加载一个 HTML 模板文件(使用std::ifstream),添加一些内容,然后将其保存为一个完整的网页。如果不是波兰语字符,它会很简单 - 我已经尝试了char/wchar_t、Unicode/Multi-Byte 字符集、iso-8859-2/utf-8、ANSI/@987654330 的所有组合@ 并且它们都不适合我(总是得到一些错误显示的字符(或者其中一些根本没有显示)。
我可以在这里粘贴很多代码和文件,但我不确定这是否会有所帮助。但也许你可以告诉我:模板文件应该有什么格式/编码,我应该在其中为网页声明什么编码,以及我应该如何加载和保存该文件以获得正确的结果?
(如果我的问题不够具体,或者您确实需要代码/文件示例,请告诉我。)
编辑: 我已经尝试了评论中建议的库:
std::string fix_utf8_string(std::string const & str)
{
std::string temp;
utf8::replace_invalid(str.begin(), str.end(), back_inserter(temp));
return str;
}
呼叫:
fix_utf8_string("wynik działania pozytywny ąśżźćńłóę");
抛出:utf8::not_enough_room - 我做错了什么?
【问题讨论】:
-
查看this库
-
@bash.d 请查看我的问题的编辑。
-
@bash.d 不幸的是,那个库根本不适合我(即使没有抛出异常,它似乎仍然没有正确转换字符)。
标签: c++ encoding fstream polish