タグ

SWIFTとunicodeに関するclavierのブックマーク (4)

  • なぜSwiftの文字列APIは難しいのか | POSTD

    (訳注:記事をご覧の環境によって文字列が正しく表示されない場合がございます。) 投稿が遅れたFriday Q&Aにようこそ。Swiftユーザの最大の不満の一つに、 String APIがあります。Swiftの文字列APIは難しく鈍いため、多くのユーザが他言語の文字列APIのようであればと感じているのではないでしょうか。今日はなぜSwiftの String APIがこのように設計されているのか(少なくとも私がなぜそう設計されていると思うのか)を説明します。そして、基的設計の観点から見て、なぜこれが最高の文字列APIなのかを説明します。 文字列とは何か 説明に入る前に、まず基的な概念を構築しましょう。文字列について、漠然とは理解しているものの、あまり深くは考えないものなのではないでしょうか。文字列をじっくり考えることで、どのようなことが起きているのか理解することができます。 概念としての文

    なぜSwiftの文字列APIは難しいのか | POSTD
  • SwiftでのUnicode正規化問題 続編:HFS+との整合性 - Qiita

    前回の記事の続編です。 HFS+ における Modified NFD Apple が OS X でファイルシステムとして採用しているHFS+では,ファイル名を原則としてNFDで分解して保持するようになっています。 2種類の「が」は分解形で統一される たとえば,ユーザが が.txt(「が」はU+304Cの1文字)というファイル名でファイルを保存しても,ファイルシステム上は が.txt(「が」は U+304B U+3099 の合成文字)として保存されます。 実際,が.txt(「が」はU+304Cの1文字)としてファイルを保存した後,Finderでファイル名変更モードに入り,「が」という文字をコピーすると,U+304C ではなく,U+304B U+3099 という2文字がコピーされるのが確認できます。 → か(U+304B) + 結合用濁点(U+3099) がコピーされる CJK互換漢字を置き

    SwiftでのUnicode正規化問題 続編:HFS+との整合性 - Qiita
  • Swiftでの文字列比較におけるUnicode正規化を巡る注意点 - Qiita

    Stringの比較は正規化をかけた上で行われる Swiftの文字列比較は,Unicode正規化をかけた上で行われます。 たとえば,次の例をご覧ください。 let gaC = "\u{304C}" // 「が」の結合形 let gaD = "\u{304B}\u{3099}" // 「が」の分解形 // NSString としての文字数(UTF16での文字数)は異なる (gaC as NSString).length // => 1 (gaD as NSString).length // => 2 // String としての比較 gaC == gaD // => true (!!) これは,こちらのサイトによると, Depending on your requirements, this may or may not be what you want, but it is certainl

    Swiftでの文字列比較におけるUnicode正規化を巡る注意点 - Qiita
  • LINE DEVELOPER DAY 2016 開催のお知らせ « LINE Engineers' Blog

    LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog saegusa2017-04-16Yoshihiro was a network engineer at LINE, responsible for all levels of LINE's infrastructure. Since being named Infra Platform Department manager, he is finding ways to apply LINE's technology and business goals to the platform. こんにちは。LINEでネットワークやデータセンターを担当している三枝です。2017年1月にJANOG39で登壇する機会を頂きましたので、今回

    LINE DEVELOPER DAY 2016 開催のお知らせ « LINE Engineers' Blog
  • 1