ルビの字幕
答えて
からthis scriptでご覧になることをお試しください通常iconv
コマンドに非常に似た方法でエンコーディングを変換し、そのSTDLIBでIconvライブラリがあります。それは、変換などですTechniConseilsは、文字列内のアクセント付き文字を置き換えます。使用例:
"Gévry".removeaccents #=> Gevry
少なくとも私にとってUTF-8文字列では動作しません。 – lzap
UnicodeUtilsに宝石を使用してください。これは1.9と2.0で動作します。これらのリリースでは、Iconvは推奨されなくなりました。
gem install unicode_utils
次にIRBでこれを試してみてください。今すぐ
2.0.0p0 :001 > require 'unicode_utils' #=> true
2.0.0p0 :002 > r = "Résumé" #=> "Résumé"
2.0.0p0 :003 > r.encoding #=> #<Encoding:UTF-8>
2.0.0p0 :004 > UnicodeUtils.nfkd(r).gsub(/(\p{Letter})\p{Mark}+/,'\\1')
#=> "Resume"
これがどのように機能するかの説明を!
まず、文字列をNFKD(正規化フォーム(K)の可解性分解)形式で正規化する必要があります。 "latin small letter e with acute" として知られている "E" のUnicodeコードポイントは、2つの方法で表すことができる。
- E = U + 00E9
- E =(E = U + 0065)+(急性= U + 0301 )
最初のフォームが1つのコードポイントとして最も普及しています。 2番目の形式は分解された書式で、2つの基本コードポイント、ASCII "e"と鋭いアクセント記号に書記素(画面上で "é"と表示されるもの)を分離します。 Unicodeは多くのコードポイントから書記を作成することができ、アジアの書記体系によっては有用です。
通常、比較、ソートなどのためにデータを標準形式で正規化したいと考えています。ここでは、éの2つの形式はNOT equal()です。 IRBでは、次の操作を行います。
> "\u00e9" #=> "é"
> "\u0065\u0301" #=> "é"
> "\u00e9" == "\u0065\u0301" #=> false
> "\u00e9" > "\u0065\u0301" #=> true
> "\u00e9" >= "f" #=> true (composed é > f)
> "\u0065\u0301" > "f" #=> false (decomposed é < f)
> "Résumé".chars.count #=> 6
> decomposed = UnicodeUtils.nfkd("Résumé")
#=> "Résumé"
> decomposed.chars.count #=> 8
> decomposed.length #=> 6
> decomposed.gsub(/(\p{Letter})\p{Mark}+/,'\\1')
#=> "Resume"
を今、私たちはNFKD形式の文字列を持っていることを、私たちは1続く文字と一致するように、「プロパティ名」構文(\ pを{PROPERTY_NAMEを})を使用して、正規表現を適用することができますまたはそれ以上の発音区別符のマーク。一致する文字をキャプチャすることで、gsubを使用して、文字+発音区別記号を文字列全体のキャプチャされた文字で置き換えることができます。
このテクニックは、ASCII文字から分音記号を削除し、ギリシャ文字列やキリル文字列などの文字セットを同等のASCII文字に変換しません。
+1文字のアクセントを分けて、それを取り除く独創的な方法です。 -1を 'i'として正規化しないため-1 – nurettin
- 1. Chromecastの字幕
- 2. テーブルビューセルの字幕
- 3. AVPlayer/MPMoviePlayerControllerの字幕
- 4. iOS/Androidの字幕
- 5. 字幕を開く
- 6. Drupalサイト全体の字幕?
- 7. Tizen TVエミュレータの字幕
- 8. 録画中のGstreamer字幕
- 9. 動画の字幕(字幕やキャプション)を自動的に生成する
- 10. silverlightで字幕を追加
- 11. 字幕をWPFで表示
- 12. ExoPlayer:字幕を表示
- 13. azureメディアサービスで字幕付き字幕を含むビデオをエンコーディングする方法
- 14. 字幕を中央に置いているが、字幕が中央 "右"
- 15. VBAの単語の字幕を追加
- 16. Matplotlibの凡例内の字幕
- 17. 複数の字幕付きラテックスの図
- 18. WPF MediaElementのビデオの字幕を表示
- 19. annotationViewの字幕を更新する
- 20. HTML5ビデオ:TextAreaの字幕テキストを追加
- 21. 字幕付きのAndroidネイティブ動画プレーヤー
- 22. Apple tvOS:AVPlayerViewControllerの字幕メニューを隠す
- 23. ハイチャートの下にある字幕とタイトル
- 24. 画像の字幕を検出する
- 25. iOSアプリは、端末の動画ライブラリの動画の字幕または字幕にアクセスできますか?
- 26. VLC 2.0.1字幕を調整する
- 27. Python3でsrt(字幕)ファイルを読む
- 28. DVB字幕をデコードする方法は?
- 29. 字幕付きビデオを再生
- 30. Swift AVPlayerViewControllerオーディオと字幕を削除ボタン
これは私の以前の質問と全く同じようです:http://stackoverflow.com/questions/225471/how-do-i-replace-accented-latin-characters-in-ruby –