22 ポイント 投稿者 GN⁺ 2023-10-03 | 3件のコメント | WhatsAppで共有
  • 20年前、Joel は「Plain Text など存在しない」と述べ、エンコーディングを必ず理解すべきだと強調した
  • Unicode は、あらゆる人間の言語をコンピュータで扱えるように統合する標準
  • それぞれ異なる文字に固有の番号を割り当てるコードポイントのシステム
  • 最大のコードポイントは 0x10FFFF で、約110万のコードポイント空間を提供
  • UTF-8 は最も一般的なエンコーディングで、98%の確率で使われている
  • UTF-8 は可変長エンコーディングで、コードポイントは 1〜4 バイトのシーケンスにエンコードできる
  • UTF-8 は ASCII とバイト互換性があり、基本ラテン文字に対して空間効率が高い
  • UTF-8 には組み込みのエラー検出と復旧機能があり、完全で有効な UTF-8 バイトシーケンスを識別できる
  • 拡張書記素クラスタ、または書記素は、コードポイントではなく反復処理すべき単位である
  • Unicode は毎年更新され、書記素クラスタを定義する規則も毎年変更される
  • Unicode はロケールによって異なる形でレンダリングされることがある
  • Unicode のサロゲートペアは、単一の Unicode コードポイントをエンコードするために使われる 2 つの UTF-16 単位である
  • UTF-16 は一部のシステムで依然としてメモリ内表現として使われている
  • Unicode 文字列は比較する前に正規化しなければならない
  • 記事は、strlenindexOfsubstring のような基本的な操作でさえ、Unicode ライブラリを使う重要性を強調している

3件のコメント

 
kimws 2023-10-04

"‍♂️".length の場合、Python 3.11 では 1 を返しますね。

 
kimws 2023-10-04

絵文字がコメントで文字化けしていますね

 
GN⁺ 2023-10-03
Hacker Newsの意見
  • この記事は、Unicodeの複雑さとソフトウェア開発における活用方法について論じている。
  • あるコメント投稿者は、「拡張書記素クラスタ」がUnicodeの文字を考える最良の方法だという記事の主張に同意せず、「文字」の定義はその意図された用途によって変わり得ると主張している。
  • コメント投稿者は、文字列の反復処理はUnicodeが動作する基本レベルであるコードポイントに基づくべきだと提案している。
  • 別のコメント投稿者は記事を称賛し、「fi」リガチャが独自のコードポイントを持つ理由についての著者の問いに答え、それはUnicodeのラウンドトリップ互換性の原則によるものだと説明している。
  • あるコメント投稿者は、ページを読んでいる間に画面上に複数のマウスポインタが見えることに不満を述べている。
  • 別のコメント投稿者は、ユーザーが複数の言語を読み書きできる場合にコンピュータのロケールを設定する難しさと、LinuxにはWindowsと比べてカスタマイズオプションが不足しているという批判について論じている。
  • あるコメント投稿者は、アクセント付き文字の処理方法のせいで、サードパーティーシステム向けのユーザー入力をサニタイズする際に問題を経験した話を共有している。
  • 別のコメント投稿者は、コードポイントは動作の最良の単位ではないという記事の主張に反論し、コードポイントで処理するのが適切な場面は多いと主張している。
  • あるコメント投稿者は、「é」がUnicodeでどのようにエンコードされるかについての記事の例を批判し、それは誤解を招き、一般的な文字のエンコード方法を代表していないと主張している。
  • 別のコメント投稿者は、中国語・日本語・韓国語の表語文字が同じコードポイントに割り当てられている問題について論じており、システムロケールが中国語でない場合、Windowsで中国語のファイル名のレンダリングが悪くなる原因になるとしている。
  • あるコメント投稿者は、ページにマウスカーソルのエフェクトがあることに戸惑い、いら立っている。