私はファイルhtmlファイルを持っているので、&'""""</\>9()[email protected]#+=-
のようなsimbolsがたくさんあります。出力スクリーンからコピーできるフォームに変換する必要があります。std::string str ("Here should be UTF simbols");
に渡された後にする方法(C++ boostを使用)ファイルUTF simbolsをUTFコードと同じように読み込む方法は?
0
A
答えて
1
このコードでは、コンパイルシステムがASCIIのスーパーセットを使用していることを前提としています。これは、囲み引用符を含むstd :: stringとして文字列リテラルを与えます。入力データは、UTF-8である必要はなく汎用バイトとして扱われます。
std::string string_literal(int length, char const *data) {
std::stringstream s;
std::ostream shex (s.rdbuf());
shex << std::hex << std::uppercase;
shex.fill('0');
s << '"';
for (int n = 0; n != length; ++n) {
unsigned char c = data[n];
if (c < 32 || 0x7F <= c) {
// add special cases for \n, \t, \r, etc. to produce nicer output
shex << "\\x" << std::setw(2) << int(c);
}
else {
switch (c) {
case '"':
case '\\':
s << '\\' << c;
break;
default:
s << c;
}
}
}
s << '"';
return s.str();
}
例:
// for string literals, makes below example easier
template<int N>
std::string string_literal(char const (&data)[N]) {
assert(data[N - 1] == '\0');
return string_literal(N - 1, data);
}
// another convenience overload
std::string string_literal(std::string const &s) {
return string_literal(s.length(), s.data());
}
int main() {
std::cout << "#include <iostream>\nint main() {\n std::cout << ";
std::cout << string_literal("&'\"</\\>9()[email protected]#+=-") << "\n << ";
std::cout << string_literal("☺ ☃ ٩(•̮̮̃•̃)۶") << ";\n}\n";
// first and second are a smiley face and snowman
// the third may not display correctly on your browser
return 0;
}
出力:
#include <iostream>
int main() {
std::cout << "&'\"</\\>9()[email protected]#+=-"
<< "\xE2\x98\xBA \xE2\x98\x83 \xD9\xA9(\xE2\x80\xA2\xCC\xAE\xCC\xAE\xCC\x83\xE2\x80\xA2\xCC\x83)\xDB\xB6";
}
+0
は怒っているようですが、「 – Rella
+0
@Kabumbus:私は従いません。私はあなたが既に持っているデータから有効なソースコードを出力したいと推測しました。そしてstring_literalはいくつかの文字列データを取り、あなたに有効な文字列リテラルを与えます。 –
関連する問題
- 1. RecordStoreにutf-8テキストを挿入して読み込む方法
- 2. Unicode UTF-8ファイルをwstringに読み込む
- 3. UTF-8ファイルで読む
- 4. ASP.NET MVCに.cshtmlファイルをUTF-8として読み込ませる方法
- 5. 同じファイルを2回連続して読み込む方法
- 6. utf-8でエンコードされたテキストをMySQLテーブルに読み込む
- 7. ファイルをUTF-8形式で書き込む方法は?
- 8. java utf-8テキストファイルの読み込みバグ?
- 9. PythonでUTF-8ファイルに書き込む
- 10. Pythonがファイルを読み込んでutf-8に保存する
- 11. Node.jsファイルを読み込み、2つの別々の関数で同じファイルを書き込む方法は?
- 12. .txtアセットをAndroidのUTF-8としてassetManagerで読み込むにはどうすればよいですか?
- 13. 同じディレクトリのファイルからどのように読み込むのですか?
- 14. XMLファイルをDataTableに読み込むコード
- 15. C#でMS Office Excelと同じようにLibreOfficeスプレッドシートを作成/読み込む方法はありますか?
- 16. ファイルからUTF-8文字をバイトとして読み取る方法は?
- 17. UTF-8としてのInputStreamの読み込み
- 18. UTF-8フォーマットのpdfファイルから読み込み、cp1252フォーマットのライターに書き込む
- 19. UTF-8 csvファイルをExcelで読み込み可能なCSVに変換する
- 20. テキストファイルから読み込むときにApache Ignite Cacheを読み込む方法
- 21. Python 3:ドイツのウムラウトを含むUTF-8ファイルを読む
- 22. タイプライターのように同じ行に書き込む方法は?
- 23. Qtでutf-8ファイルを読むことができません
- 24. ファイルをクラスと同じディレクトリに読み込みますか?
- 25. Angular2/Webpack:CSSファイル内に読み込まれるフォントを読み込む方法は?
- 26. UTF-8でInputStreamを読み取る方法は?
- 27. numpy.genfromtxtを使用してPython 3でUTF-8ファイルを読み込み
- 28. ファイルを読み込み、アプリケーションの起動時にオブジェクトを読み込む方法
- 29. UITableViewカスタムビューと同じセルに「詳細を読み込む」
- 30. 複数のプロセスで同時に同じファイルを読み込む方法は、読み込み速度が遅くなりますか?
あなたは明確にしてくださいことはできますか?特別なHTML文字をエスケープすることについて話しているのですか、あるいは正しくUnicodeで作業していますか? –
ポイントはファイル内のすべての文字をエスケープしてutfとして出力します。文字列にコピーして貼り付けることができます(他のC++ソースファイルでは)。 – Rella
これらの文字はすべてプレーンASCIIで、ASCIIはUTF-8のサブセットです。 – MSalters