タグ

UTF-8に関するtmsanrinshaのブックマーク (6)

  • The history of UTF-8 as told by Rob Pike

    Rob Pike explains how Ken Thompson invented UTF-8 in one evening and how they together built the first system-wide implementation in less than a week. Subject: UTF-8 history From: "Rob 'Commander' Pike" <r (at) google.com> Date: Wed, 30 Apr 2003 22:32:32 -0700 (Thu 06:32 BST) To: mkuhn (at) acm.org, henry (at) spsystems.net Cc: ken (at) entrisphere.com Looking around at some UTF-8 background, I se

  • 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama

    UnicodeのUTF-16エンコーディングではほとんどの文字(コードポイント)は2バイトで表現されるが、Unicodeに後から追加収録された文字の多くは4バイトで表現される。4バイト文字がうまく扱えないプログラムというのはわりとよくある。しかし世界中で広く使われるようになった絵文字がよりによって4バイト文字であるせいで、そのような文字が扱えない問題がよいペースで解決に向かいつつある。それについて少し説明してみようと思う。 Unicodeが80年代から90年代初頭にかけてデザインされたときの目標の一つは、Unicodeに含まれる文字数を65536個以内に収めることだった。現代の文章を実用的なレベルで表すためには、漢字などを含めてもそれだけの種類の文字があれば十分だと考えられたのだ。当然これは1文字を2バイトで表すことを念頭に置いていた。つまりコンピュータの揺籃期から当時に至るまで単純に英語

    絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama
  • Perl の文字列エンコーディングの話 | Hachioji.pm 日めくりテックトーク

    ハァイ,先日 Plack::Request::WithEncoding というモジュールをリリースしました,@moznion です.皆様いかがお過ごしでしょうか. さて,このモジュールを書いてて Perl の文字列エンコーディングに関する知識を幾ばくか深めましたので,共有したいと思います.まあ大体の皆さんは「そんなこと知ってるぜ!! 常識だろ!」という趣だと存じ上げますが…… ただまあ,「文字化けしてつらい!!」みたいなのは誰しも通る道だと思いますので記しておくこととします! TL;DR 入り口で decode して,内部ではすべて flagged utf8 で扱い,出口で encode する.これがすべてです!とにかくこの基方針をまもっていれば幸せになれます. from Perl で utf8 化けしたときにどうしたらいいか - blog.64p.org ぶっちゃけ,上記のエントリ良す

  • Perl: 文字コードとutf8フラグについて

    文字コードとutf8フラグ Perl において、「文字コード」と「utf8フラグ」は別物です。文字コードの話の中で utf8フラグが語られるので、同じもののように思っている人も多いかもしれませんが、別物です。いや、たとえば同じものだとしても、別物だと思った方が理解しやすいと思います。 文字コード は文字とコードのマッピングに名前をつけたもので、utf8フラグは、Perlにおける文字列の扱いに付随するフラグのことです。 たとえば、以下のようなソースコードをレガシーな感じに EUC-JP で書いていたとして、 my $euc_str = 'ソースが EUC-JP なのでここは EUC-JP'; $euc_str には EUC-JP の文字列が格納されています。 これを、utf8フラッグド(utf8 flag on)にしてみます。 use Encode; my $euc_str = 'ソースが

    Perl: 文字コードとutf8フラグについて
    tmsanrinsha
    tmsanrinsha 2016/12/08
    Encode::from_to
  • UTF-8な文字列をsubstrする

    ずいぶん以前からPerlで物を書くときには、文字コードをUTF-8にし、use utf8をしないで書いている。 で、その際、substrなどで文字列を切り出したいとすると、UTF-8は1文字あたりの長さが可変長であるため、入力文字列によっては変な文字が切り出されてしまうことになる。 これを正しく切り出すときに色々調べてみたメモ。 use utf8について Perl 5.8.x Unicode関連に記されているように、 1.ソースコード中の文字列がUTF8になる。 2.マルチバイトの変数名なども使える。 なことがウリらしく、表面上の意味は、PerlにscriptがUTF-8で書かれていることを教える事が目的らしいので、次のようなコードも通ります。*1 #!/usr/local/bin/perl use utf8; my $あいうえお = "x"; print $あいうえお; で、このときにs

    UTF-8な文字列をsubstrする
  • JavaScriptでURLをちょっと賢く解読する。 CodingFirst

    C言語、PerlJavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。 ちょっと賢くURLデコードする。UTF-8限定だけど。 Googleの検索結果とかでURLに %E3%81%AD%E3%81%8E などと、 %xxな文字列になっている事があるが、 URIの規則を定める RFC 3986 では、URIにASCIIの非予約文字[1]以外の文字データを用いる場合には、「%xx」(xxは16進数)という形でコードを表記することが定められている。 URLエンコード - Wikipedia という事で、JavaScriptで元の文字に戻すには、decodeURIすればいい。 decodeURI('%E3%81%AD%E3%81%8E'); //=>'ねぎ' でもエラーに弱くて、例えば、 decodeURI('%E3%81%AD%E3%81

  • 1