テルグ語のキャラクターがAppleデバイスをブリックしている理由
Appleは数ヶ月間バグを抱えています。これで、iPhoneのテキストレンダリング機能に新しい深刻なバグが発生しました。このバグは、単一のテルグ語の文字によって引き起こされ、その文字を含む通知を受信するだけでiPhoneが壊れないブートループに入る可能性があります。 1人のキャラクターがiOSでこのような大きな問題を引き起こす可能性がある理由を詳しく見ていきましょう。
注: テルグ語のバグの修正は、最新バージョンのiOS(11.2.6)で利用できます。テルグ語のキャラクターがアプリやデバイスをロックしている場合は、iTunesを介してiPhoneを復元し、最新バージョンのiOSに更新します。 iPhoneがブートループでスタックしている場合は、iTunesに認識させるためにデバイスファームウェアアップデート(DFU)状態にする必要がある場合があります。終了したら、作成した最新のバックアップからデバイスを復元します。
テルグ語とは
テルグ語は、インドの一部、特にアーンドラプラデーシュ州、テランガーナ州、およびヤナムの町で話され、書かれている言語です。アラビア語やその他のブラーフミー文字など、多くのスクリプトベースの言語と同様に、テルグ語はUnicode文字セットのいくつかの特別な機能を使用して、その文字をコンピューター画面に表示します。
ほとんどのラテン文字はASCII互換性のために単一の8ビットUnicodeコードポイントで表されますが(たとえば、文字 A UnicodeコードポイントU+0041
に存在します 、01000001
によってバイナリで表されます )、スクリプトまたは非ラテン文字で記述された言語は、通常、複数のUnicodeコードポイントを組み合わせて文字を表します。
これは、テルグ語のように、言語のバージョンの文字をクラスターに組み合わせた言語に特に当てはまります。英語の文体の合字とは異なり、各テルグ語の文字間の接続は言語的に重要です。これに対応するために、Unicodeには、それぞれが独自のコードポイントで表される文字を相互に接続する複雑なシステムが含まれています。
Unicodeコードポイントの数が非常に多いことを考えると、これはほぼ無限の多様性を生み出す可能性があります。これらのポイントが組み合わさって、読みやすい文字になります。このように、Unicodeは、文字通りすべてのテルグ語の単語に対してUnicodeコードポイントを必要としません。代わりに、Unicodeはテルグ語の子音、母音、発音区別符号(「ヴィラーマ」)を組み合わせて、単一の文字のように表示される単語を作成します。同じことが、アラビア語など、合字の正書法規則を持つ他の言語にも当てはまります。
クラッシュの原因は何ですか?
この問題は、コードポイントU+200C
のゼロ幅非接合子(ZWNJ)に関連しているようです。 。 ZWNJは、2つの隣接する文字が通常の合字なしでレンダリングすることを要求します。英語では、ZWNJは、文字ffが標準の接続合字で印刷されないようにし、代わりに各fを区切ります。ただし、4つのテルグ語コードポイントの特定のセット(すべてを1つのクラスターに結合する必要があります)と組み合わせると、何らかの理由でiOSが結果を正しく表示できなくなります。
AppleのSanFranciscoフォントでは文字を表示できないと推測する人もいれば、Appleが使用する特定のレンダリングプロセスが原因であると推測する人もいます。正確な原因が何であれ、キャラクターをレンダリングしようとすると、メッセージやWhatsAppからSpringboardまで、レンダリングしているものすべてが劇的にクラッシュします。文字(「知識」を意味する「gya」)を構成するUnicodeコードポイントは次のとおりです。
-
U+0C1C
ja( ) -
U+0C4D
ヴィラーマ、または発音区別符号( ) -
U+0C1E
にゃ( ) -
U+200C
ゼロ幅非接合子 -
U+0C3E
aa( )
しかし、ゼロ幅非接合子(ZWNJ)だけを非難することはできません。無害な家族の絵文字(????)でも問題なく使用されます。これは、いくつかの特定のコードポイントとZWNJの特定の組み合わせのようです。怪我に侮辱を加えると、ZWNJはこのテルグクラスターのレンダリングに特別な影響を与えないか、そもそもそこにあるべきではないようです。
その他のブラーフミー文字の問題
ただし、この問題が発生している言語はテルグ語だけではありません。ブラーフミー文字に同様の方法でUnicodeを使用するベンガル語とデーバナーガリー語にも同じ問題があります。 Manish Goregaokarは、魅力的で詳細なブログ投稿を作成し、正確なクラッシュケースをさらに詳しく説明しています。
任意のシーケンス
<consonant1, virama, consonant2, ZWNJ, vowel>
デーバナーガリー語、ベンガル語、テルグ語で:1.
consonant2
サフィックス結合です(pstf
/vatu
)
2。consonant1
は、レフ形成の手紙ではありません
3。vowel
2つのグリフコンポーネントはありません
結論:なぜこれがAppleに捕らえられなかったのですか?
このバグがどのように発生したかを理解するには、Appleの立場に立つ必要があります。確かに、この文字の組み合わせは、テルグ語の非常にあいまいな単語ではありません。しかし、iPhoneには数十の言語のサポートが含まれています。 Unicodeには文字通り何十億もの潜在的な組み合わせがあります。非常に多様で、リリース前にUnicodeのバグを有意義にテストすると、ソフトウェアを定期的に更新することは基本的に不可能になります。
ただし、エラーがこれほどのダメージを与えることはないはずです。テキストメッセージの内容に基づいて電話が壊れてはいけません。後知恵は確かに20/20ですが、Springboardをクラッシュさせるよりも、クエスチョンマークボックス(�)としてキャラクターをレンダリングする方が良かったようです。
-
一部のWebサイトがモバイルデバイスでの読み込みに時間がかかるのはなぜですか?
グローバルインターネットトラフィックに関しては、モバイルデバイスは目覚ましい進歩を遂げています。シスコの最新の調査によると、この爆発的な傾向は続くだけで、2014年から2019年の間に世界のモバイルデータトラフィックは10倍に増加します。これは、Webサイトを所有する人々にとって、新しいフレーバーの訪問者がいることを意味します。に。時々、彼らがあなたに対応しようとする(またはその欠如)と、デスクトップコンピュータで同じアドレスを入力する場合よりも、モバイルでのサイトの読み込みが遅くなる条件が作成されます。これはどういうことですか? モバイルは低速のサーバーに転送されます モバイルデバイ
-
すべての Apple デバイスで Apple Pay を使用する方法
Apple Pay は、クリック、タッチ、または Face ID を表示するだけで、オンラインとオフラインで即座に取引できる最も洗練された方法の 1 つです。 Mac、iPhone、iPad、Apple Watch で Apple Pay を使えば、店舗、アプリ、Web で安全に買い物ができます。また、Apple Pay を使用すると、メッセージから直接、連絡先との間で送金/受け取りを行うことができます。安全な支払いを行うための手間のかからないツールです。しかし、iOS デバイスで Apple Pay を使用する方法を知っていますか? Apple Pay は実際にどのように機能しますか? こ