さまざまな php エンコーディング セットとそれらを使用する必要がある状況の詳細な説明_PHP チュートリアル
文字セットは複数の文字の集合であり、各文字セットには異なる数の文字が含まれています。ASCII 文字セット、GB2312 文字セット、GB 18030 文字セットです。 、Unicode 文字セットなどコンピューターがさまざまな文字セットのテキストを正確に処理するには、コンピューターがさまざまなテキストを認識して保存できるように文字エンコーディングが必要です。
中国語には多くの文字があり、また、異なる表記規則を持つ簡体字中国語と繁体字中国語の2種類の文字に分けられます。コンピューターは元々英語の半角文字に基づいて設計されているため、中国語の文字をエンコードすることになります。中国の技術基盤の基礎。この記事では、いくつかの代表的な文字セットを文字セットの年代順に説明し、いくつかの代表的な漢字セットを選択し、その歴史的起源、特徴、および技術的特徴を検討します。
ASCII文字セット
1.名前の由来
ASCII(American Standard Code for Information Interchange、American Standard Code for Information Interchange)は、ローマ字に基づくコンピュータコーディングシステムです。
2. 特徴
主に現代英語やその他の西ヨーロッパ言語を表示するために使用されます。これは現在最も一般的なシングルバイト エンコード システムであり、国際標準 ISO 646 と同等です。
3. コンテンツが含まれています
制御文字:Enterキー、バックスペース、改行キーなど。
表示できる文字:英語の大文字、小文字、アラビア数字、スペイン語記号
4.技術的特徴
7ビットで1文字、合計128文字を表す
5.ASCII拡張文字セット
7 -bit エンコーディング ASCII の文字セットは 128 文字しかサポートできません。より一般的に使用されるヨーロッパ文字を表すために、ASCII 拡張文字セットは 8 ビットを使用して文字を表現し、合計 256 文字を使用します。
ASCII拡張文字セットによって拡張された記号には、表形式の記号、計算記号、ギリシャ文字、特殊なラテン文字などがあります。
GB2312文字セット
1.名前の由来
GB2312はGB2312-80文字セットとも呼ばれ、正式名称は「情報交換用中国語コード化文字セット基本セット」で、旧中国国家総局が発行したものです。 1981 年 5 月の基準 1 月 1 日に施行。
2. 特徴
GB2312は中国の国家標準の簡体字文字セットです。含まれる漢字は使用頻度の 99.75% をカバーしており、基本的に漢字のコンピュータ処理ニーズを満たしています。中国本土とシンガポールで広く使用されています。
3. 含まれるコンテンツ
GB2312には、簡体字中国語文字と一般記号、シリアル番号、数字、ラテン文字、日本語のかな、ギリシャ文字、ロシア文字、中国語のピンイン記号、中国語の表音文字、合計7445個のグラフィック文字が含まれています。これには、第 1 レベルの中国語 3,755 文字と第 2 レベルの中国語 3,008 文字を含む 6,763 文字、ラテン文字、ギリシャ文字、日本語のひらがなおよびカタカナ文字、ロシア語のキリル文字を含む 682 個の全角文字が含まれています。
4. 技術的特徴
(1) パーティション表現:
GB2312 は収集された漢字を「パーティション」し、各ゾーンには 94 個の漢字/記号が含まれます。この表現は位置コードとも呼ばれます。
各エリアに含まれる文字は次のとおりです: エリア 01 ~ 09 は特殊記号、エリア 16 ~ 55 はピンイン順にソートされた第 1 レベルの漢字、および部首ごとにソートされた第 2 レベルの漢字です。ストローク、エリア 10 ~ 15 およびエリア 88 ~ 94 はコード化されていません。
(2) 全角表現
2バイトのうち、最初のバイトが1バイト目、後半のバイトが2バイト目となります。通常、最初のバイトを「上位バイト」と呼び、2 番目のバイトを「下位バイト」と呼びます。
「上位バイト」は0xA1~0xF7(エリア01~87の市外局番に0xA0を加算)、「下位バイト」は0xA1~0xFE(0xA0に01~94を加算)を使用します。
5. エンコーディングの例
GB2312 文字セットの最初の漢字「あ」を例に挙げます。その市外局番は 16 で、ビット番号は 01 です。市外局番は 1601 です。バイトと下位バイトにそれぞれ0xA0を追加して、プログラムの漢字処理コード0xB0A1を取得します。計算式は、0xB0=0xA0+16、0xA1=0xA0+1となります。
BIG5 キャラクターセット
1. 名前の由来
Big Five または Big Five とも呼ばれ、1984 年に台湾情報産業評議会と 5 つのソフトウェア会社によって開発されました: Acer、MiTAC、Jiajia、ゼロワンとFICなのでビッグファイブと呼ばれています。
Big5 コードが作成されたのは、当時の台湾のさまざまなメーカーが、相互に互換性のない異なるコード (Yitian コード、IBM PS55、湾岸コードなど) を発売していたためでしたが、台湾政府は互換性を持っていませんでした。まだ公式の中国語文字コードを導入しており、中国本土の GB2312 エンコードには繁体字中国語の文字が含まれていません。
2. 特徴
Big5 文字セットには、合計 13,053 個の漢字が含まれています。この文字セットは、台湾、中国で使用されています。興味深いのは、この文字セットには同じ 2 つの文字、「兀」 (0xA461 および 0xC94A) と「嗀」 (0xDCD1 および 0xDDFC) が繰り返し含まれていることです。
3. 文字エンコード方式
Big5 コードは 2 バイトの格納方式を採用しており、単語をエンコードするのに 2 バイトを使用します。最初のバイトは「上位バイト」と呼ばれ、2 番目のバイトは「下位バイト」と呼ばれます。上位バイトのエンコード範囲は0xA1~0xF9、下位バイトのエンコード範囲は0x40~0x7E、0xA1~0xFEです。
各エンコード範囲に対応する文字の種類は次のとおりです: 0xA140 ~ 0xA3BF は句読点、ギリシャ文字、特殊記号です。さらに、0xA259 ~ 0xA261 には 2 音節の測定単位の単語が格納されます: 噙兛兞兝兡嗧。瓩玎; 0xA440 -0xC67E は一般的に使用される漢字で、最初にストロークで並べ替え、次に部首で並べ替えます。0xC940-0xF9D5 は、最初にストロークで並べ替え、次に部首で並べ替えます。
4. Big5の限界
Big5のコードには10,000文字以上が含まれていますが、社会に流通している人名、地名、方言、化学や生物学の単語は考慮されておらず、日本語の平易な文字も含まれていません。 . かなとカタカナ文字。
例えば、台湾では「朱」という言葉は「朱」の変化体であると考えられているため、「朱」という言葉は含まれません。康熙辞典の一部の部首(「亠」、「疒」、「辵」、「綶」など)、通称(「君」、「玄」、「檜」、「喆」など) 」など)はBig5には含まれません。
GB18030文字セット
1. 名前の由来
GB 18030の正式名称はGB18030-2000「情報交換用中国語文字コード化文字セットの基本セットの拡張」であり、によって発行された新しい文字セットです。中国政府は 2000 年 3 月 17 日に、中国語の文字エンコーディングに関する国家標準を定めました。2001 年 8 月 31 日以降に中国市場でリリースされたソフトウェアは、この標準に準拠する必要があります
2. 特徴
GB 18030 文字セット標準の導入により、大幅な変更が加えられました。国内外の著名なIT業界の代表者が参加し、デモンストレーションを行った。同社、情報産業部、旧国家品質技術監督総局が共同で実施した。
GB 18030 文字セット標準は、中国語の文字、日本語のかな、韓国語、および中国の少数文字で構成される大規模な文字セットのコンピュータエンコードの問題を解決します。この規格の合計文字エンコーディング スペースは 150 万エンコーディング ビットを超え、中国語、日本語、韓国語、および中国の少数文字をカバーする 27,484 個の中国語文字が含まれています。中国本土、香港、台湾、日本、韓国などの東アジアでの情報交換のための、多言語、大きなフォント サイズ、多目的で統一されたコーディング形式の要件を満たしています。 Unicode バージョン 3.0 とも互換性があり、Unicode 拡張文字語彙「統一漢字拡張 A」の内容を満たしています。また、以前の各国文字エンコーディング標準 (GB2312、GB13000.1) と互換性があります。
3. エンコード方式
GB 18030規格では、文字のエンコードにシングルバイト、ダブルバイト、4バイトの3つの方式が使用されています。半角部分は0x00~0x7Fのコード(ASCIIコードの対応コードに相当)を使用します。 2 バイト部分では、最初のバイト コードの範囲は 0x81 ~ 0xFE、最後のバイト コード ビットはそれぞれ 0x40 ~ 0x7E と 0x80 ~ 0xFE です。 4 バイト部分は、GB/T 11383 では使用されていない 0x30 ~ 0x39 を 2 バイトエンコード拡張のサフィックスとして使用します。拡張された 4 バイトエンコードの範囲は 0x81308130 から 0xFE39FE39 です。最初と 3 バイトのエンコード コード ビットはすべて 0x81 ~ 0xFE で、2 バイト目と 4 バイトのエンコード コード ビットはすべて 0x30 ~ 0x39 です。
4. 含まれるコンテンツ
全角部分に含まれるコンテンツには、主に GB13000.1 の全 CJK 漢字 20,902 個、関連する句読点 13 個、表意文字記述子、補助漢字 80 個と部首/コンポーネント、および二重文字セクションが含まれます。 -エンコードされたユーロ記号など4 バイト部分には、上記の 2 バイト文字を除く、CJK 統一中国語文字拡張 A を含む GB 13000.1 のすべての文字が含まれます。
Unicode 文字セット
1. 名前の由来
Unicode 文字セットエンコーディングは、Universal Multiple-Octet Coded Character Set の略称で、Unicode Consortium という団体によって開発された文字エンコーディングシステムです。今日の世界のさまざまな言語で書かれたテキストの処理、表示。このエンコードは 1990 年に開発が開始され、1994 年に正式に発表されました。最新バージョンは 2005 年 3 月 31 日の Unicode 4.1.0 です。
2. 特徴
Unicodeはコンピュータで使われる文字コードです。各言語の各文字に統一された一意のバイナリ エンコーディングを設定し、言語間およびプラットフォーム間のテキスト変換と処理の要件を満たします。
3. エンコード方法
Unicode標準では常に16進数が使用され、書き込み時に先頭に「U+」が付けられます。たとえば、文字「A」のエンコードは004116、文字「?」のエンコードは20AC16です。 。したがって、「A」のエンコードは「U+0041」と記述されます。
4.UTF-8エンコーディング
UTF-8はUnicodeの使用方法の1つです。 UTF は Unicode Translation Format であり、Unicode を特定の形式に変換することを意味します。
UTF-8 は、ネットワークを使用した異なるコンピュータ間での異なる言語およびエンコーディングのテキストの送信を容易にし、シングルバイト処理を処理する既存のシステム上で 2 バイト Unicode を正しく送信できるようにします。
UTF-8 は Unicode 文字を格納するために可変長バイトを使用します。たとえば、ASCII 文字は格納するために引き続き 1 バイトを使用し、アクセント付き文字、ギリシャ文字、またはキリル文字は格納するために 2 バイトを使用しますが、一般的に使用される漢字は 3 バイトを使用します。補助プレーン文字は 4 バイトを使用します。
5.UTF-16 と UTF-32 エンコーディング
UTF-32、UTF-16、UTF-8 は、Unicode 標準エンコーディング文字セットの文字エンコーディング スキームです。UTF-16 は、1 つまたは 2 つの未割り当ての 16 ビット A シーケンスを使用します。コード単位の数は Unicode コード ポイントをエンコードし、UTF-32 は各 Unicode コード ポイントを同じ値の 32 ビット整数として表します。
さまざまなPHPアプリケーションの文字化け問題の解決策
1) タグを使用してページエンコーディングを設定する
このタグの機能は、クライアントのブラウザがページを表示するために使用する文字セットエンコーディングを宣言することです。 - 8 (UTF8 である MySQL とは異なります) など。したがって、ほとんどのページはこのメソッドを使用して、このページを表示するときに使用するエンコーディングをブラウザーに指示し、エンコーディング エラーや文字化けを回避できます。しかし、場合によっては、この文がどの xxx であっても機能しないことがわかります。これについては後で説明します。
これはHTML情報に属し、サーバーがHTML情報をブラウザに渡したことを示すだけの単なるステートメントであることに注意してください。
2) header("content-type:text/html; charset=xxx");
この関数 header() の機能は、括弧内の情報を http ヘッダーに送信することです。括弧内の内容が記事に記載されているとおりであれば、最初のラベルと比較してみると、文字が似ていることがわかります。ただし、違いは、この機能がある場合、ブラウザは常に要求された xxx エンコーディングを使用し、決して従わないことです。そのため、この機能は非常に便利です。なぜこれが起こっているのでしょうか? 次に、http ヘッダーと HTML 情報の違いについて話さなければなりません:
http ヘッダーは、http プロトコルを使用して HTML 情報をブラウザーに送信する前にサーバーによって送信される文字列です。タグはHTML情報に属しているため、header()で送信された内容が最初にブラウザに届きます。人気のポイントは、header()の優先度が高いことです(これを言えるかわかりませんが)。 PHP ページに header("content-type:text/html;charset=xxx") と header("content-type:text/html;charset=xxx") の両方がある場合、ブラウザは前者の http ヘッダーとヘッダーのみを認識します。メタではありません。もちろん、この関数はphpページ内でのみ使用できます。
また、前者は確実に機能するのに、後者は時々機能しないのはなぜでしょうか、という疑問も残ります。これが、次に Apache について話したい理由です。
3) AddDefaultCharset
Apache ルートディレクトリの conf フォルダに、Apache 設定ドキュメント全体 httpd.conf があります。
テキスト エディタを使用して httpd.conf を開きます。708 行目 (バージョンが異なる場合があります) には、AddDefaultCharset xxx (xxx はエンコード名) が含まれています。このコード行の意味: サーバー全体の Web ページ ファイルの http ヘッダーの文字セットをデフォルトの xxx 文字セットに設定します。この行があることは、各ファイルにヘッダー行 ("content-type: text/html; charset=xxx") を追加することと同じです。これで、ブラウザが utf-8 に設定されているにもかかわらず常に gb2312 を使用する理由が理解できました。
Webページにheader("content-type:text/html; charset=xxx")がある場合、デフォルトの文字セットが設定した文字セットに変更されるので、この機能は常に役に立ちます。 AddDefaultCharset xxx の前に「#」を追加し、この文をコメントアウトし、ページに header("content-type...") が含まれていない場合は、メタ タグが有効になります。
上記の優先順位は以下の通りです:
header("content-type:text/html; charset=xxx")
.. AddDefaultCharset xxx
..
Webプログラマの方ならお勧めです各ページにヘッダー ("content-type: text/html; charset=xxx") を追加します。これにより、どのサーバーでも正しく表示され、強力な移植性が確保されます。
4) php.ini の Default_charset 設定:
php.ini の Default_charset = "gb2312" は、php のデフォルトの言語文字セットを定義します。通常、この行をコメント アウトし、必須要件とするのではなく、Web ページ ヘッダーの文字セットに基づいてブラウザが自動的に言語を選択できるようにすることをお勧めします。これにより、複数の言語の Web サービスを同じサーバー上で提供できます。

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPは死んでいません。 1)PHPコミュニティは、パフォーマンスとセキュリティの問題を積極的に解決し、PHP7.xはパフォーマンスを向上させます。 2)PHPは最新のWeb開発に適しており、大規模なWebサイトで広く使用されています。 3)PHPは学習しやすく、サーバーはうまく機能しますが、タイプシステムは静的言語ほど厳格ではありません。 4)PHPは、コンテンツ管理とeコマースの分野で依然として重要であり、エコシステムは進化し続けています。 5)OpcacheとAPCを介してパフォーマンスを最適化し、OOPと設計パターンを使用してコードの品質を向上させます。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトの要件に依存します。 1)PHPは、Web開発に適しており、学習しやすく、豊富なコミュニティリソースですが、構文は十分に近代的ではなく、パフォーマンスとセキュリティに注意を払う必要があります。 2)Pythonは、簡潔な構文と学習が簡単なデータサイエンスと機械学習に適していますが、実行速度とメモリ管理にはボトルネックがあります。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
