ウィキペディアからエンコードとデコードの意味を理解することはできますが、各プログラミング言語がそれらを必要とする理由を理解することはできません。そして、その答えがデータベースなどの外部ソースからデータを読み取ることができることに関連している場合、なぜそれらの多くが異なるエンコードスキームを採用しているのでしょうか。
Ex PythonにはデフォルトのASCIIエンコーディングがあり、
Javaは基盤となるOSに依存し、
DB2データベースにはIBM-1252があります
ウィキペディアからエンコードとデコードの意味を理解することはできますが、各プログラミング言語がそれらを必要とする理由を理解することはできません。そして、その答えがデータベースなどの外部ソースからデータを読み取ることができることに関連している場合、なぜそれらの多くが異なるエンコードスキームを採用しているのでしょうか。
Ex PythonにはデフォルトのASCIIエンコーディングがあり、
Javaは基盤となるOSに依存し、
DB2データベースにはIBM-1252があります
ほとんどの人はテキストを扱うのが好きです。
ただし、コンピュータストレージはバイトでのみ機能します。
エンコーディングは、テキストをバイトに変換するプロセスです。
過去数十年にわたって、簡潔さ、互換性、国際化など、さまざまな目的のために多くの異なるエンコーディングスキームが開発されてきました。
今日では、すべてがUTF8を使用する必要があります。(残念ながら、まだすべてが行われているわけではありません)
プログラマーとユーザーは、英語またはその他の人間が読める言語の形式の単純なプレーンテキスト形式を操作しますが、コンピューターはそれを処理する方法を知りません。コンピューターはバイトしか処理できないため、エンコードとデコードが必要です。
http://searchnetworking.techtarget.com/definition/encoding-and-decodingから引用:
コンピューターでは、エンコードとは、一連の文字(文字、数字、句読点、および特定の記号)を、効率的な送信または保存のために特殊な形式に変換するプロセスです。デコードは逆のプロセスです。つまり、エンコードされた形式を元の文字シーケンスに変換し直します。エンコーディングとデコーディングは、データ通信、ネットワーキング、およびストレージで使用されます。この用語は、特に無線(無線)通信システムに適用されます。
エンコーディングとデコーディングという用語は、アナログからデジタルへの変換およびデジタルからアナログへの変換のプロセスに関連してよく使用されます。この意味で、これらの用語は、テキスト、画像、オーディオ、ビデオ、マルチメディア、コンピュータープログラム、またはセンサー、テレメトリ、制御システムの信号など、あらゆる形式のデータに適用できます。暗号化と暗号化を混同しないでください。暗号化とは、データの内容を隠すためにデータを意図的に変更するプロセスです。暗号化は、コンテンツが含まれている特定のコードを変更せずに実行でき、エンコードは、コンテンツを意図的に隠すことなく実行できます。
ほとんどのコンピューターでテキストファイルに使用されるコードは、ASCII(American Standard Code for Information Interchange、発音はASK-ee)として知られています。ASCIIは、大文字と小文字の英字、数字、句読点、および一般的な記号を表すことができます。その他の一般的に使用されるコードには、Unicode、BinHex、Uuencode、およびMIMEが含まれます。データ通信では、マンチェスターエンコーディングは、2桁の数字(ビット)が高論理状態と低論理状態の間の遷移を表す特殊な形式のエンコーディングです。無線通信には、多くの符号化および復号化方法が存在し、そのうちのいくつかは、専門の人々のグループ(たとえば、アマチュア無線家)によってのみ使用されます。19世紀に固定電話の電信で最初に使用されたすべての中で最も古いコードは、モールス信号です。