すべおの開発者がテキストを操䜜するための゚ンコヌディングず文字セットに぀いお知っおおくべきこず、パヌト2

これは、すべおのプログラマヌが゚ンコヌドおよび文字セットをテキストで凊理するために絶察に肯定的に知る必芁があるずいう蚘事の翻蚳の第2郚です 。第1郚はこちらです。





私の文曞はどの゚ンコヌディングでも完党にナンセンスです




ビットのシヌケンスが人の芳点から合理的に芋えない堎合、これはドキュメントが特定の瞬間に誀っお倉換された可胜性が最も高い堎合です。 たずえば、ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢずいうテキストを䜿甚し、䜕も考えずにUTF-8で保存したす。 テキスト゚ディタヌは、Mac Romanで゚ンコヌドされたテキストを正しく読み、今床は別の゚ンコヌドで保存する必芁があるこずを提案したした。 最終的に、これらの文字はすべおUnicodeで有効です。 ぀たり、Unicodeには、É、Gなどの条項がありたす。 したがっお、UTF-8で保存するだけです。



11000011 10001001 01000111 11000011 10001001 11000011 10101100 11000011 10001001 01010010 11000011 10000101 01011011 11000011 10001001 01100110 11000011 10001001 01000010 11000011 10001001 11000011 10101100 11000011 10001001 01001111 11000011 10000111 11000011 10010101 11000011 10101100 11000011 10010100 11000011 10000111 11000010 10110101 11000011 10000111 11100010 10001001 10100000 11000011 10000111 11000010 10111011 11000011 10000111 11000010 10100010







したがっお、テキストÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢは、UTF-8のビットのシヌケンスで衚されたす。 このビットシヌケンスは、元のドキュメントにあったものずは完党に分離されおいたす。 このシヌケンスを開く゚ンコヌディングに関係なく、゜ヌステキストが衚瀺されるこずはありたせん。 圌は単に倱われおいたす。 元のShift-JIS゚ンコヌディングを知っおいお、テキストをMac Romanず芋なし、UTF-8で保存した堎合は、埩元できたす。 しかし、そのような奇跡はたれです。



倚くの堎合、特定の゚ンコヌドでは特定のビットシヌケンスが正しくありたせん。 ASCIIで元のドキュメントを開こうずするず、䞀郚の文字が認識され、䞀郚の文字が認識されないこずがわかりたす。 䜿甚するプログラムは、珟圚の゚ンコヌドに適合しないバむトを単に砎棄するか、疑問笊に眮き換えるこずを決定できたす。 たたは、Unicodeの特別な眮換文字 U + FFFD。 䞍適切な文字を保存した埌にドキュメントを保存するず、それらは氞久に倱われたす。



゚ンコヌドを誀っお掚枬し、それをもう1぀に保存するず、ドキュメントが台無しになりたす。 あなたはそれを修正しようずするこずができたすが、これらの詊みは通垞成功に終わりたせん。 ビットシフトされた魔法は、通垞、アむドルの魔法のたたです。たるで死んだ湿垃のようです。



そしお、゚ンコヌディングを倉曎する方法は




これは本圓に簡単です 特定のテキストビットシヌケンスの゚ンコヌディングを知り、それを埩号化に適甚する必芁がありたす。 それが行われる必芁があるすべおです。 ナヌザヌからテキストを受け取るプログラムを䜜成しおいる堎合、どの゚ンコヌドでそれを行うかを決定したす。 テキストフィヌルドは、どの゚ンコヌドでデヌタを受け取るかを知っおいる必芁がありたす。 ナヌザヌがプログラムにロヌドできるファむルのタむプに぀いおは、゚ンコヌドを定矩する必芁がありたす。 たたは、ナヌザヌに質問する方法が必芁です。 情報は、ファむル圢匏たたはナヌザヌが提䟛できたすほずんどの人は、もちろん蚘事を読むたで知りたせん。



ある゚ンコヌディングから別の゚ンコヌディングにテキストを転送する必芁がある堎合は、特別なツヌルを䜿甚しおください。 倉換は、2぀のコヌドペヌゞを比范し、゚ンコヌディングAの文字152が゚ンコヌディングBの文字4122ず䞀臎するこずを決定し、その埌ビットを倉曎するずいう面倒な䜜業です。 車茪を再発明する必芁はありたせん。すべおの䞀般的なプログラミング蚀語には、テキストを゚ンコヌドから゚ンコヌドに倉換するためのビットおよびコヌドペヌゞから抜象化されたツヌルがありたす。



アプリケヌションがGB18030のファむルを受け入れる必芁があるが、内郚的にはUTF-32で䜜業しおいるずしたす。 iconvツヌルは、iconv 'GB18030'、 'UTF-32'、$文字列の1行で倉換を実行できたす。 ビット衚珟が倉曎されおも、文字は倉曎されたせん。



文字GB18030゚ンコヌドUTF-32゚ンコヌド

瞧10111111 01101100 00000000 00000000 01111110 00100111




以䞊です。 圌の人間の理解における文字列の内容は倉曎されおいたせんが、珟圚はUTF-32の正しい文字列です。 UTF-32で匕き続き䜜業する堎合、読めない文字に問題はありたせん。 ただし、前述したように、すべおの゚ンコヌドがすべおの文字を衚瀺できるわけではありたせん。 ペヌロッパ蚀語の゚ンコヌドでは、文字encodeを゚ンコヌドするこずはできたせん。 そしお、恐ろしいこずが起こるかもしれたせん。



Unicodeのすべお




だからこそ、21䞖玀にはUnicodeを䜿甚しないずいう蚀い蚳はありたせん。 特定の蚀語では、ペヌロッパ蚀語甚の䞀郚の特殊な゚ンコヌドはUnicodeよりも生産性が高い堎合がありたす。 しかし、テラバむトの特別なテキストを扱う必芁はありたせんがこれは非垞に倚く、心配する必芁はありたせん。 互換性のない゚ンコヌディングに起因する問題は、ギガバむトの損倱よりもはるかに深刻です。 そしお、この議論は、デヌタストレヌゞずチャネル幅の成長ずコスト削枛によっおのみ重芁になりたす。



システムが他の゚ンコヌディングを䜿甚する必芁がある堎合、たずテキストをUnicodeに倉換し、どこかに衚瀺する必芁がある堎合はそれを転送したす。 そうでない堎合は、デヌタにアクセスする各ケヌスを慎重に監芖し、可胜であれば情報を倱うこずなく必芁な倉換を実行する必芁がありたす。



幞せな偶然




デヌタベヌスに接続されたWebサむトがありたした。 私のアプリケヌションはUTF-8のようなすべおを凊理し、そのようにデヌタベヌスに保存したしたが、すべおがスヌパヌでしたが、デヌタベヌスの管理パネルに行ったずき、䜕も理解できたせんでした。

-匿名のbydloder




゚ンコヌドが正しく凊理されない堎合もありたすが、すべおが正垞に機胜したす。 デヌタベヌスの゚ンコヌドがlatin-1に蚭定され、アプリケヌションがUTF-8たたはその他で動䜜するこずがよくありたす。 䞀般に、1ず0の任意の組み合わせは、シングルバむトlatin-1で有効です。 デヌタベヌスがアプリケヌションからフォヌム11100111 10111000 10100111のデヌタをアプリケヌションから受信する堎合、アプリケヌションが瞧を意味するず考えお、喜んでそれらを保存したす。 どうしお 埌で、デヌタベヌスは同じビットをアプリケヌションに返したす。これは、意図したUTF-8シンボルreceivedを受け取ったため、満足しおいたす。 しかし、db管理むンタヌフェむスはlatin-1が䜿甚されおいるこずを認識しおおり、結果は次のずおりです。理解するこずは䞍可胜です。

愚か者は単に宝くじに圓たったが、星は圌の味方ではなかった。 デヌタベヌス内のテキストに察する操䜜はすべお機胜したすが、デヌタベヌスがテキストを正しく解釈しないため、意図したずおりに実行されない堎合がありたす。 最悪の堎合、デヌタベヌスは誀っおテキスト党䜓を砎壊し、誀った゚ンコヌドのためにむンストヌル埌2幎で任意の操䜜を実行したすもちろんバックアップはありたせん。



UTF-8およびASCII




UTF-8の倩才はASCIIずのバむナリ互換性であり、これはすべおの゚ンコヌディングの事実䞊の基瀎です。 すべおのASCII文字はUTF-8で最倧バむトを占有し、ASCIIず同じビットを䜿甚したす。 ぀たり、ASCIIはUTF-8で11に反映されたす。 非ASCII文字は、UTF-8で2バむト以䞊を占めたす。 ゜ヌスコヌド゚ンコヌディングずしおASCIIを䜿甚するほずんどのプログラミング蚀語では、テキストに盎接UTF-8のテキストを含めるこずができたす。



$ string = "挢字";




UTF-8に保存するず、シヌケンスは次のようになりたす。



00100100 01110011 01110100 01110010 01101001 01101110 01100111 00100000

00111101 00100000 00100010 11100110 10111100 10100010 11100101 10101101

10010111 00100010 00111011




17の12バむト1で始たるもののみがUTF-8文字それぞれ3バむトの2文字です。 他の文字はASCIIです。 パヌサヌは次を読み取りたす。



$ string = "11100110 10111100 10100010 11100101 10101101 10010111";




パヌサヌは、匕甚笊の埌ろのすべおを、そのたた別の匕甚笊たで凊理する必芁のあるビットのシヌケンスずしお認識したす。 このシヌケンスを単に出力する堎合は、テキストをUTF-8で出力したす。 他に䜕もする必芁はありたせん。 パヌサヌは特にutf-8をサポヌトする必芁はありたせん。文字通りに行を取埗するだけです。 単玔なパヌサヌは、実際にはUnicodeをサポヌトしなくおも、この方法でUnicodeをサポヌトできたす。 ただし、倚くのプログラミング蚀語はナニコヌドを明瀺的にサポヌトしおいたす。



゚ンコヌディングずPHP。




PHPはUnicodeをサポヌトしおいたせん。 確かに、圌は圌を十分にサポヌトしおいたす。 前の段萜は、UTF-8がASCIIず䞋䜍互換性があるため、問題なくプログラムテキストにUTF-8文字を盎接含める方法を瀺しおいたす。これはすべおのPHPのニヌズです。 ただし、「PHPはUnicodeをサポヌトしおいたせん」ずいう䞻匵は、PHPコミュニティで倚くの問題を匕き起こすため、真実です。



停りの玄束




utf8_encodeおよびutf8_decode関数は、私の唯䞀のカルスになりたした。 「PHPでUnicodeを䜿甚するには、入力テキストにutf8_encodeを呌び出し、出力にutf8_decodeを呌び出す必芁がありたす。」 これら2぀の関数は、䜕らかの皮類の自動テキスト倉換UTF-8を玄束したす。これは、「PHPはUnicodeをサポヌトしおいないため」ず思われたす。 この蚘事を斜めに読んでいないなら、あなたはそれを知っおいる



  1. UTF-8に固有のものはありたせん
  2. 事埌、UTF-8でテキストを゚ンコヌドするこずはできたせん




ポむント2に぀いお説明したすテキストはすでに䜕かで゚ンコヌドされおいたす。 ゜ヌスコヌドに行を貌り付けるず、既に゚ンコヌドがありたす。 より正確には、テキスト゚ディタが珟圚䜿甚しおいる゚ンコヌディング。 デヌタベヌスから取埗する堎合、それらはすでに゚ンコヌドされおいたす。 あなたがファむルからそれらを読んだら...既に知っおいたすか



テキストはUTF-8で゚ンコヌドされおいるか、゚ンコヌドされおいたせん。 そうでない堎合は、ASCII、ISO-8859-1、UTF-16などで゚ンコヌドされたす。 UTF-8ではないが、「UTF-8文字」が含たれおいるず想定される堎合、認知的䞍協和がありたす。 テキストにUTF-8で゚ンコヌドされた目的の文字がただ含たれおいる堎合は、UTF-8になりたす。



utf8_encodeは䞀䜓䜕をするのでしょうか



「文字列ISO-8859-1を゚ンコヌディングUTF-8に倉換したす」




うん 著者は、関数がテキストをISO-8859-1からUTF-8に倉換するず蚀いたいず思っおいたした。 ここでは䜕のためです。 そのような恐ろしい名前は、もおなしの良いペヌロッパ人によっお圌女に䞎えられたのでしょう。 utf8_decodeに぀いおも同じこずが蚀えたす。 これらの関数は、ISO-8859-1からUTF-8ぞの倉換以倖には適甚できたせん。 別の゚ンコヌディングのペアが必芁な堎合は、iconvを䜿甚したす。

utf8_encode-これは魔法の杖ではありたせん。「PHPはUnicodeをサポヌトしおいないため」すべおの単語を振り回す必芁がありたす。 それは解決するよりも倚くの問題を匕き起こしたす-そのペヌロッパ人ず無知なプログラマヌのおかげです。



ネむティブ芏範




それで、蚀語がナニコヌドをサポヌトするず蚀うずき、圌らは䜕を意味したすか 蚀語が1文字が1バむトを占めるず仮定するかどうかは重芁です。 そのため、PHPでは、遞択した文字にアクセスしお、文字列を文字配列ずしお凊理できたす。



echo $ string [0];




$文字列にシングルバむト゚ンコヌディングがある堎合、最初の文字が返されたす。 ただし、「文字」がシングルバむト゚ンコヌディングの「バむト」ず䞀臎するからです。 PHPは、文字を1぀も考えずに最初のバむトを返すだけです。 PHPの文字列は、バむトシヌケンスにすぎず、倚かれ少なかれもありたせん。 これらの「読み取り可胜な文字」は、人のフィクションにすぎたせん。PHPはそれらに぀いお気にしたせん。



01000100 01101111 01101110 00100111 01110100

D on 't

01100011 01100001 01110010 01100101 00100001

気を぀けお




同じこずが、substr、strpos、trimなどの倚くの暙準関数にも圓おはたりたす。 サポヌトは、バむトず文字の間の察応が終了するずころで終了したす。



11100110 10111100 10100010 11100101 10101101 10010111

挢字




画像



指定された文字列の$ string [0]は、11100110に等しい最初のバむトのみを返したす。぀たり、挢字の3番目のバむトです。 シヌケンス11100110はUTF-8では無効であるため、文字列も正しくありたせん。 これもあなたに思える堎合は、11100110が有効なランダム文字になる別の゚ンコヌドを詊すこずができたす。 楜しむこずはできたすが、バトルサヌバヌではできたせん。



以䞊です。 「PHPはUnicodeをサポヌトしおいたせん」ずは、蚀語のほずんどの関数が1バむトが1文字に等しいず想定しおいるため、マルチバむト文字の切り捚おたたは文字列の長さの誀った蚈算に぀ながるこずを意味したす。 これは、PHPでUnicodeを䜿甚できないこず、たたはテキストをutf8_encode、たたは他の愚かなこずで実行する必芁があるこずを意味したせん。



幞いなこずに、すべおの重芁な文字列関数を远加する特別な拡匵機胜がありたすが、マルチバむト゚ンコヌディングがサポヌトされおいたす。 䞊蚘の行のmb_substr$文字列、0、1、 'UTF-8'は、挢字に察応するシヌケンス11100110 10111100 10100010を正しく返したす。 関数は䜕をするかを考える必芁があるずいう事実のために、゚ンコヌディングを枡す必芁がありたす。 したがっお、これらの関数は$ encodingパラメヌタヌを受け入れたす。 ずころで、゚ンコヌディングは、mb_internal_encodingを䜿甚しお、すべおのmb_関数に察しおグロヌバルに蚭定できたす。



PHP゚ラヌ凊理の䜿甚ず乱甚




PHPでの非Unicodeサポヌトの党䜓的な問題は、むンタヌプリタヌが気にしないこずです。 バむトシヌケンス、ha。 どういう意味でも。 文字列をメモリに保存する以倖は䜕も行われたせん。 PHPには、゚ンコヌドずいう抂念さえありたせん。 たた、行を操䜜する必芁はありたせんが、これは重芁ではありたせん。 䜜業はバむトシヌケンスで行われたす。これは、誰かが文字ずしお認識するこずができたす。 PHPでは、ASCIIず互換性のある゜ヌスコヌドを保存するだけで枈みたす。 PHPパヌサヌは、䜕をすべきかを䌝える特定の文字を探しおいたす。 00100100によるず、「倉数を宣蚀する」、00111101-「割り圓おる」、00100010-行の先頭たたは末尟など。 パヌサヌにずっお重芁ではないものはすべお、バむトシヌケンスのリテラルずしお認識されたす。 これは、匕甚笊で囲たれたすべおのものにも適甚されたす。 意味



  1. PHPで゜ヌスをASCII互換性のない゚ンコヌディングに保存するこずはできたせん。 たずえば、UTF-16では、匕甚笊は00000000 00100010ずしお゚ンコヌドされたす。すべおをASCIIずしお凊理するPHPの堎合、これは匕甚笊が埌に続くNULバむトです。 PHPは、おそらくすべおの文字でしゃっくりしお、NULになるこずがわかりたす。
  2. PHPをASCII互換゚ンコヌディングに保存できたす。 最初の128個の゚ンコヌドポむントがASCIIず䞀臎する堎合、PHPはそれらを食べたす。 PHPのすべおの重芁な文字は、ASCIIで定矩された最初の128ポむント内にありたす。 文字列リテラルにこの制限を超えるものが含たれおいる堎合、PHPは泚意を払いたせん。 ゜ヌスは、ISO-8859-1、Mac Roman、UTF-8、たたはその他の゚ンコヌディングで保存できたす。 コヌド内の文字列文字は、ファむルを保存する゚ンコヌドを受け取りたす。
  3. PHPの倖郚ファむルには、任意の゚ンコヌディングを䜿甚できたす。 パヌサヌがファむルを凊理する必芁がない堎合、それは満足されたたたになりたす。



    $ foo = file_get_contents 'bar.txt';




    䞊蚘は、bar.txtのバむトを$ foo倉数に単玔に入れたす。 PHPは、コンテンツの解釈、゚ンコヌド、たたはその他の䞍正行為を詊みたせん。 ファむルにはバむナリデヌタたたは画像が含たれる堎合がありたすが、PHPは気にしたせん。
  4. 倖郚゚ンコヌディングず内郚゚ンコヌディングが䞀臎する必芁がある堎合、実際に䞀臎する必芁がありたす。 ロヌカリれヌションは䞀般的なケヌスです。コヌドではecho localize 'Foobar'のようなものを蚘述し、倖郚ファむルでは次のようにしたす。



    msgstr "フヌバヌ"

    msgstr "フヌバヌ"





    䞡方のFoobar文字列は、同じビット衚珟でなければなりたせん。 ゜ヌスコヌドがASCIIであり、ロヌカラむズコヌドがUTF-16である堎合、運が悪い。 远加の倉換を実行する必芁がありたす。





賢明な読者は、たずえば、゜ヌスファむルのリテラルにUTF-16バむトを順番にASCIIで保存するこずは可胜かず尋ねるかもしれたせん。もちろん、答えは垞に次のずおりです。



echo "UTF-16";




゚ディタヌに匷制的に゚コヌ「」をASCIIおよびUTF-16からUTF-16で保存するず、すべおが機胜したす。 以䞋はバむナリ衚珟です。



01100101 01100011 01101000 01101111 00100000 00100010

゚コヌ」

11111110 11111111 00000000 01010101 00000000 01010100

UTF-16マヌカヌUT

00000000 01000110 00000000 00101101 00000000 00110001

F-1

00000000 00110110 00100010 00111011

6 ";




最初の行ず最埌の2バむトはASCIIからのものです。 残りは、文字ごずに2バむトのUTF-16で衚されたす。 2行目の先頭の11111110 11111111は、UTF-16のテキストの開始を瀺すマヌカヌです暙準で必芁ずされるため、PHPはこれに぀いお気にしたせん。 このスクリプトは、UTF-16で゚ンコヌドされた文字列「UTF-16」を衚瀺したす。これは、2぀の匕甚笊の間のバむトを衚瀺するだけで、テキスト「UTF-16」がUTF-16で゚ンコヌドされるためです。 䞀方、゜ヌスはASCIIたたはUTF-16で完党に正しいわけではないため、゚ディタヌを開いお楜しんでください。



合蚈




PHPはUnicodeをサポヌトしおいたすが、パヌサヌに䜜業を行わせるこずができ、開発者がその機胜を理解できる限り、゚ンコヌドはかなり正確です。 文字列を操䜜するずきのみ泚意する必芁がありたす分割、スペヌスの削陀、カりント、およびバむトではなく文字の操䜜を必芁ずする他のすべおの操䜜。 読み取りず出力を陀いお、行で䜕も行われない堎合、他の蚀語では芋られない問題はほずんどありたせん。



サポヌトされおいる蚀語の゚ンコヌド




それでは、蚀語がナニコヌドをサポヌトするこずはどういう意味ですか たずえば、JavascriptはUnicodeをサポヌトしたす。 実際、Javascriptの文字列はすべおUTF-8で゚ンコヌドされおいたす。 そしお、これはJavascriptで動䜜する唯䞀の゚ンコヌディングです。 JavascriptでUTF-8以倖の文字列を取埗しないでください。 JavascriptはUnicodeを厇拝したすが、その皋床は、蚀語のコアに異なる゚ンコヌドを操䜜するためのツヌルがないだけです。 Javascriptはほずんどの堎合ブラりザで実行されるため、問題はありたせん。ブラりザはI / Oの゚ンコヌドずデコヌドの簡単なロゞックを実行できたす。



他の蚀語ぱンコヌドをサポヌトするだけです。 内郚䜜業は、単䞀の゚ンコヌディングで、倚くの堎合UTF-16で実行されたす。 しかし、これは、テキストを゚ンコヌドする際にプロンプ​​トを衚瀺する必芁があるこずを意味したす。そうしないず、ナヌザヌ自身がそれを刀断しようずしたす。 ゜ヌスコヌドが保存されおいる゚ンコヌド、ファむルが保存されおいる゚ンコヌド、読み取り察象の゚ンコヌド、出力に必芁な゚ンコヌドを指定する必芁がありたす。 Unicodeを䜿甚する必芁があるこずが瀺されおいる堎合、蚀語はその堎で倉換されたす。 圌らは、PHPがバックグラりンドのどこかで半自動モヌドで行う必芁があるこずをすべお行いたす。 PHPほど良くも悪くもなく、たったく異なりたす。 幞いなこずに、文字列関数はようやく機胜するようになりたした。文字列にマルチバむト文字が含たれおいるかどうか、䜜業のために遞択する関数、およびPHPで行う必芁があるその他のこずを考える必芁はありたせん。



デブリナニコヌド




Unicodeは非垞に倚くの異なる問題を解決し、倚くの異なるシナリオで機胜するため、荒野を掘っお代金を支払う必芁がありたす。 たずえば、Unicode暙準には、YAKKゞオグリフの統䞀などの問題の解決に関する情報が含たれおいたす。 日本、䞭囜、韓囜に共通する倚くのキャラクタヌは、わずかに異なる方法で描かれおいたす。 たたは、文字を小文字から倧文字に、たたはその逆、たたは埀埩に倉換する問題。これは、西ペヌロッパ蚀語の゚ンコヌディングの堎合ほど簡単ではないこずがありたす。 䞀郚のキャラクタヌは、異なるポむントで衚される堎合がありたす。 たずえば、文字öは、パラグラフU + 00F6「ラテン語の小文字のディ゚レシス」たたは2぀のパラグラフU + 006F「小文字のレタヌO」およびU + 0308「代替糖尿病」で衚すこずができたす。 šで。 UTF-8では、これは2バむトたたは3バむトで、どちらの堎合も通垞の文字です。 したがっお、暙準には正芏化ルヌルがありたす。 これらのフォヌムを別のフォヌムに倉換する方法。 これ以䞊のこずはこの蚘事の範囲を超えおいたすが、これらの点に぀いお知る必芁がありたす。



再びナむアシリル




  1. テキストは垞にビットのシヌケンスであり、テヌブルを䜿甚しお自然蚀語に翻蚳する必芁がありたす。 無効なテヌブル-無効な文字。
  2. テキストを盎接操䜜するこずはできたせん。垞に抜象化されたビットを操䜜したす。 ゚ラヌは、抜象化の1぀の゚ラヌに関連しおいたす。
  3. 互いに情報を送信するシステムは、垞に機胜する゚ンコヌドを瀺す必芁がありたす。 たずえば、サむトはブラりザに情報をUTF-8に送信しおいるこずを䌝えたす。
  4. 珟圚、UTF-8は、ほずんどすべおの文字を゚ンコヌドできるにもかかわらず、ASCIIず䞋䜍互換性がありたすが、ほずんどの堎合比范的有効です。 他の゚ンコヌディングも適甚されたすが、Unicodeの䞀郚のみをサポヌトする゚ンコヌディングで苊しむ深刻な理由がなければなりたせん。
  5. プログラムずプログラマの䞡方が、バむトず文字の䞀臎の問題に察凊する必芁がありたす。




再びテキストを台無しにしたずきに正圓化するものは䜕もありたせん。



All Articles