C言語のUTF-8文字列を大文字に変換するポータブルな方法はありますか?もしそうでないなら、それを行うLinuxの方法は何ですか?UTF-8文字列を大文字に変換するにはどうすればよいですか?
答えて
ポータブルな方法は、ICUなどのユニコード対応のライブラリを使用することです。あなたが探している機能はu_strToUpper
かもしれません。
これを行う標準的な方法は、ワイド文字の文字列があり、ワイド文字でtowlower/towupper/towctransを使用する場合です(ロケールが正しく設定されていると動作します)。したがって、UTF-8文字列をワイド文字列に変換し、wchar_tを受け取り、変換するこれらの関数を使用する必要があります。
これは巨大なPITAなので、おそらくICUのようなサポートされているオープンソースのUnicodeライブラリを使う方が良いでしょう。
いいえ、これは間違っています。大文字のßは2文字であるSSなので、ドイツ語のテキスト(たとえば)を扱うのは不可能です。これは、壊れた唯一の例からは遠いが、最も一般的な例である。 –
真ですが、それはposix標準ライブラリを使って訂正するのにぴったりの唯一のバージョンです(そして、最初に文字の間に1:1のケースマッピングを指定したUnicode標準を責めています)。 –
@JacobBフルケーシングは、古いシンプルなシンプルケーシングよりもはるかに優れた結果をもたらします。そのため、JavaやPerlなどの言語では、文字列のカスケード機能が完全にケーシングされています。コードポイントごとに作業しないでください。それだけでは動作しません。あなたは全体の文字列が必要です。 – tchrist
glibはg_utf8_strup()
である。
これは正しい答えだと確信していますが、何らかの理由で 'man g_utf8_strup'を実行してg_utf8_strup'を手動で入力しないでください。' nm /opt/local/lib/libglib-2.0.a | grep g_utf8_strup'はそれがそこにあることを証明します。それは本当に面白いです。 FTFSF。 – tchrist
@tchrist:Stupidは相対的です。すべてのglib関数のマニュアルページでは、100 MBのマニュアルページが表示されます。 –
@ IgnacioVazquez-Abrams:圧縮されていないHTML **のバージョンが75 MBでどのように重視されているか見てみると、 – ninjalj
- 1. 文字列をUTF8に変換する
- 2. C++で最初の文字を大文字に変換するにはどうすればよいですか?
- 3. UCS2文字列をUTF8に変換するにはどうすればよいですか?
- 4. C#で文字列をPascalCase文字列に変換するにはどうすればよいですか?
- 5. C++/Arduino:文字列/文字配列をバイトに変換するにはどうすればよいですか?
- 6. 文字列を文字配列に変換するにはどうすればよいですか?
- 7. PHP文字列値をアンドロイド文字列値に変換するにはどうすればよいですか?
- 8. 文字エスケープシーケンスを含む文字列をcharに変換するにはどうすればよいですか?
- 9. 文字列内の1文字を大文字にするにはどうすればいいですか
- 10. 文字列の文字をリストに変換するにはどうすればよいですか?
- 11. 文字列をユニコード文字に変換するにはどうすればよいですか?
- 12. 文字のLazySeqをClojureの文字列に変換するにはどうすればよいですか?
- 13. 1つの文字を文字列に変換するにはどうすればよいですか?
- 14. 文字列を小文字に変換するにはどうすればよいですか?
- 15. 文字列内の\文字を/文字に変更するにはどうすればよいですか?
- 16. 列全体の大文字小文字を変更するにはどうすればよいですか?
- 17. python-pandasを使用してデータフレームの列文字列を小文字から大文字に変換するにはどうすればいいですか?
- 18. XSLTを使用して文字列を大文字または小文字に変換するにはどうすればよいですか?
- 19. 大量の文字列をC++で整数に変換するにはどうすればよいですか?
- 20. GolangがUTF8文字列をUTF8に変換する
- 21. 文字列を解析し、フォーマット文字列に基づいて文字列をdoubleに変換するにはどうすればよいですか?
- 22. 文字列内の文字列を文字列内で渡すにはどうすればよいですか?
- 23. 文字列内の部分文字列を交換するにはどうすればよいですか?
- 24. Perlでファイル名の大文字/小文字を変更するにはどうすればよいですか?
- 25. ANSI文字(char)からUnicode文字(wchar_t)に変換するにはどうすればよいですか?
- 26. viで文字列を特殊文字に置き換えるにはどうすればよいですか?
- 27. C#で文字列を文例に変換するにはどうすればよいですか?
- 28. RichTextBoxのテキストの大文字と小文字を変更するにはどうすればよいですか?
- 29. バンドルIDの大文字/小文字を変更するにはどうすればよいですか?
- 30. UTF8でエンコードされた非ASCII文字をPerlでASCII同等の文字に変換するにはどうすればよいですか?
注記として、ICUではUTF-8→UTF-16→大文字のUTF-16→大文字のUTF-8を変換する必要があります。 (実際にこれを行う他のライブラリはありません) –