argra****@users*****
argra****@users*****
2008年 8月 26日 (火) 22:41:16 JST
Index: docs/perl/5.10.0/perlunitut.pod diff -u docs/perl/5.10.0/perlunitut.pod:1.1 docs/perl/5.10.0/perlunitut.pod:1.2 --- docs/perl/5.10.0/perlunitut.pod:1.1 Mon Aug 25 03:46:35 2008 +++ docs/perl/5.10.0/perlunitut.pod Tue Aug 26 22:41:16 2008 @@ -23,12 +23,12 @@ =end original -The days of just flinging strings around are over. It's well established that -modern programs need to be capable of communicating funny accented letters, and -things like euro symbols. This means that programmers need new habits. It's -easy to program Unicode capable software, but it does require discipline to do -it right. -(TBT) +文字列を単に放り出す日々は終わりました。 +最近のプログラムでは変わったアクセントのついた文字や、ユーロのマークの +ようなものを通信出来る必要があることが確立しています。 +これは、プログラマは新しい意味が必要であることを意味しています。 +Unicode 対応ソフトウェアをプログラムするのは簡単ですが、それを正しく行うには +訓練が必要です。 =begin original @@ -54,14 +54,15 @@ =end original -These are not the very basics, though. It is assumed that you already -know the difference between bytes and characters, and realise (and accept!) -that there are many different character sets and encodings, and that your -program has to be explicit about them. Recommended reading is "The Absolute +しかし、これらは超基本ではありません。 +あなたがすでにバイトと文字の違いを知っていて、様々な文字集合と +エンコーディングがあることを自覚していて(さらに受け入れていて!)、 +あなたのプログラムがこれらを明示的にする必要がある、と仮定しています。 +お勧めの読み物は Joel Spolsky による +"The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode -and Character Sets (No Excuses!)" by Joel Spolsky, at -L<http://joelonsoftware.com/articles/Unicode.html>. -(TBT) +and Character Sets (No Excuses!)" +L<http://joelonsoftware.com/articles/Unicode.html> です。 =begin original @@ -71,10 +72,9 @@ =end original -This tutorial speaks in rather absolute terms, and provides only a limited view -of the wealth of character string related features that Perl has to offer. For -most projects, this information will probably suffice. -(TBT) +このチュートリアルはどちらかといえば独立した用語を使っていますし、Perl が +提供している豊富な文字列に関する機能のうち限定された見方のみを扱っています。 +ほとんどのプロジェクトにとっては、おそらくこの情報で十分です。 =head2 Definitions @@ -110,9 +110,8 @@ =end original -B<Unicode> is a character set with room for lots of characters. The ordinal -value of a character is called a B<code point>. -(TBT) +B<Unicode> は大量の文字を表現できる文字集合です。 +文字の序数は B<コードポイント> と呼ばれます。 =begin original @@ -122,10 +121,10 @@ =end original -There are many, many code points, but computers work with bytes, and a byte can -have only 256 values. Unicode has many more characters, so you need a method -to make these accessible. -(TBT) +コードポイントは本当に大量にありますが、コンピュータはバイト単位で +動いていて、バイトは 256 種類の値のみを持ちます。 +Unicode はもっとたくさんの文字を持っているので、これらにアクセスできるような +手法が必要です。 =begin original @@ -135,10 +134,10 @@ =end original -Unicode is encoded using several competing encodings, of which UTF-8 is the -most used. In a Unicode encoding, multiple subsequent bytes can be used to -store a single code point, or simply: character. -(TBT) +Unicode はいくつかの競合するエンコーディングを使ってエンコードされていて、 +UTF-8 がもっともよく使われています。 +Unicode のエンコーディングでは、複数の引き続くバイト列を一つのコードポイント +(あるいは単純に「文字」)を保管するのに使います。 =head3 UTF-8 @@ -164,11 +163,12 @@ =end original -UTF-8 treats the first 128 codepoints, 0..127, the same as ASCII. They take -only one byte per character. All other characters are encoded as two or more -(up to six) bytes using a complex scheme. Fortunately, Perl handles this for -us, so we don't have to worry about this. -(TBT) +UTF-8 は最初の 128 のコードポイント(0..127) を ASCII と同様に扱います。 +文字毎に 1 バイトしかかかりません。 +その他の文字は、複雑な仕組みを使って 2 またはそれ以上 (最大 6)のバイトを +使います。 +幸い、Perl がその作業をするので、私たちがそれについて心配する必要は +ありません。 =head3 Text strings (character strings) @@ -299,10 +299,10 @@ =end original -Perl has an B<internal format>, an encoding that it uses to encode text strings -so it can store them in memory. All text strings are in this internal format. -In fact, text strings are never in any other format! -(TBT) +Perl には B<内部形式> と呼ばれる、テキスト文字列をメモリに格納できるように +エンコードを行うために使うエンコーディングがあります。 +全てのテキスト文字列はこの内部形式になります。 +実際、テキスト文字列が他の形式になることは決してないのです! =begin original @@ -410,12 +410,12 @@ =end original -It's important to realize that there are no bytes in a text string. Of course, -Perl has its internal encoding to store the string in memory, but ignore that. -If you have to do anything with the number of bytes, it's probably best to move -that part to step 3, just after you've encoded the string. Then you know -exactly how many bytes it will be in the destination string. -(TBT) +テキスト文字列にはバイト列はないということを自覚することは重要です。 +もちろん、Perl は文字列をメモリに保管するために内部形式を使いますが、 +これは無視してください。 +もしバイト数を扱うような何かをする必要があるなら、おそらくその部分を +ステップ 3 の、文字列をエンコードした直後に移すのが最良です。 +そこで目的の文字列が何バイトになるのかが正確に分かります。 =begin original @@ -456,13 +456,13 @@ =end original -And if the protocol you're using supports a way of letting the recipient know -which character encoding you used, please help the receiving end by using that -feature! For example, E-mail and HTTP support MIME headers, so you can use the -C<Content-Type> header. They can also have C<Content-Length> to indicate the -number of I<bytes>, which is always a good idea to supply if the number is -known. -(TBT) +そしてもしあなたの使っているプロトコルが、あなたが使ったエンコーディングを +相手に伝える方法に対応しているなら、その機能を使って受信側を助けてあげて +ください! +例えば、E-mail と HTTP は MIME ヘッダに対応しているので、 +C<Content-Type> ヘッダが使えます。 +I<バイト> 数を示すための C<Content-Length> もあるので、もしバイト数が +わかっているなら、これをつけるのは常に良い考えです。 "Content-Type: text/plain; charset=UTF-8", "Content-Length: $byte_count"