タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

swiftとUnicodeに関するefclのブックマーク (2)

  • Swift の文字列の長さ - Qiita

    length プロパティが無い!? たいていのプログラミング言語の文字列には length というプロパティやメンバ関数があって文字列の長さを取得できます。ところが驚くことに Swift の文字列には length プロパティがありません。Objective-C 由来の NSString にだってあるのにこれはどういうことでしょう? これは真面目に向き合うと、とても複雑な Unicode に Swift が真面目に向き合っていることに起因します。 Unicode 昔々、コンピュータは地域ごとに、酷いとメーカーごとに異なる文字コードを使っていました。これでは地域やメーカーを超えた文章ファイルのやりとりは色々と面倒なことになります。また、欧米の文字は 1 文字 1 バイトなのに対し日をはじめとした東アジアの文字は 1 文字 2 バイトで表すことが多く文字列処理が煩雑という問題もありました。こ

    Swift の文字列の長さ - Qiita
    efcl
    efcl 2017/03/05
    Swiftにおける「文字」の長さについて。
  • プログラミング言語における文字コードの話

    世の中がほぼUnicode前提になってめでたしめでたし。とはいかなかった現実の話。 String型でできる文字列処理とか、ソースコード自体、特に識別子で使える文字とか。 軽くおさらい: Unicode まあいろんなところでいろんな人が書いてると思うのでさらっと概要だけ。 Unicodeは、元々、「65,536文字あれば十分だろ」とかいう幻想の元、2バイト固定長の文字コードとして作られていました。 もちろん足りなくて、ビット数を拡張。基が2バイトのままでこの拡張した分を取り扱えるようにしたのが今のUTF-16で、拡張分は2文字分(4バイト)を使って表現。 この、2文字分使って1文字を表すやつのことをサロゲートペア(surrogate pair: 代理対)と呼びます。 あと、ASCII文字も2バイトになるのを欧米人が嫌って、ASCII文字はASCIIコードのまま、逆に漢字・ひらがな・カタカナ

    プログラミング言語における文字コードの話
    efcl
    efcl 2017/03/01
    C#やSwiftとUnicodeの話。 Swiftが書記素クラスターを扱う話
  • 1