検索
ホームページ開発ツールNotepadWindows メモ帳のオプションの文字エンコーディングの詳細な紹介

この記事では、Windows メモ帳のオプションの文字エンコーディングについて詳しく説明します。必要な方は参考にしてください。

Windows メモ帳 (メモ帳) でファイルを保存するためのエンコード オプションの意味...

この記事では、単に Windows メモ帳の動作をテストします。

Windows メモ帳のオプションの文字エンコーディングの詳細な紹介

Windows メモ帳のエンコードには、ANSI、Unicode、Unicode ビッグ エンディアン、および UTF-8 が含まれます。

警告

この記事は、広く使用されているソフトウェアの技術的事実を説明するだけであり、作成者がそのソフトウェアの使用を支持または反対することを意味するものではありません。
実際、著者は、コンピューター プログラム コードを扱う際には、いかなる場合でも Windows メモ帳を使用しないことをお勧めします。
この記事は、64 ビット Windows 7 の簡体字中国語バージョンの特定のインスタンスでのみ検証されており、参照のみを目的としています。他の同一または異なるシステム上で一貫した結果を再現できるという保証はありません。

この記事では、Unicode の エンコーディングバイト シリアル化 を厳密に区別します。
Unicode の Encoding は、数値 (通常は 16 進数で記述される) を使用して文字を 1 対 1 で表現する作業のみを指します。この数値の範囲は Unicode 標準によってのみ制限されており、コンピューターとは関係ありません。
Unicode の バイト シリアル化 は、コンピュータ メモリに書き込めるようにするために、Unicode 標準範囲内の数値を N バイトに表現する作業を指します。

テスト ケース

テスト ケースは「锟斤[改行]a[改行]」です。 (Kun Jin Kao は信念です。)

すべての文字の GBK および Unicode エンコードは次のとおりです:

  • 锟GBK=EFBF Unicode=U 951F

  • GBK=BDEF Unicode=U 65A4

  • # # CopyGBK=

    BFBD Unicode=U 62F7

次の ASCII 文字の GBK および Unicode エンコードは、ASCII と一貫性があります:

a=

0x61 CR=0x0D LF=0x0A (Windows の 1 つの改行文字は 2 文字を占めます: CR LF)

ANSI

簡体字中国語システムでは、ANSI は中華人民共和国の国家標準によって定義された GBK エンコーディングです。

Windows メモ帳が ANSI を使用してこのファイルを保存した結果は次のとおりです。

EF BF  BD EF  BF BD  0D  0A  61  0D  0A
-----  -----  -----  --  --  --  --  --
単純に GBK エンコードを使用してすべての文字を保存します。最上位ビットが 1 ではない 1 バイトで ASCII と同等、それ以外の場合は 2 バイト。

ここでバイトオーダー(エンディアン)の問題に注意する必要があります

[注A]。ここでのバイトオーダーは big-endian であることがわかります。

ただし、「ビッグ エンディアンが最初の GBK」を特に強調する必要はありません。GB2312 以降、標準ではストレージ方式がビッグ エンディアン ファーストであることが規定されているためです。

[注 B]。以降の GBK は GB18030-2000 と下位互換性があります。

ANSI の問題点は、システムに依存することです。他の言語システムの ANSI は GBK ではないため、GBK で開かれたファイルは必然的に文字化けします。そしてGBK自体の文字セットが小さすぎます。

(決して「中国語しか使わない」とは言わないでください。Unicode の記号がなければ、インターネット上の絵文字は入力できません。)

Unicode シリーズ

Windows のメモ帳で「Unicode」と表示されたもの、 「Unicode ビッグ エンディアン」と UTF-8 はすべて、同じ Unicode

encoding の異なる バイト シリアル化格納方法です。

UTF-16 と BOM

ここでの Unicode は、UTF-16

[注 C] を指します。 UTF-16 は非常に単純かつ粗雑なシリアル化方法です。ほとんどの Unicode 文字は U 0000 ~ U FFFF [Note D] の範囲にあり、各文字は 2 バイトを使用し、Unicode エンコーディングの元の値を書き込みます。ディスクに。

ASCII 文字は、0x00 の上位 8 ビットを格納するために 2 倍のスペースを浪費する必要があることに注意してください。0 の上位 8 ビットが省略されると、解析中にハイフネーションを行うための他の根拠がなくなるからです。

UTF-16 には、ビッグ エンディアンとリトル エンディアンの問題があります。UTF-16 では、バイトが最初にビッグ エンディアンであるかリトル エンディアンであるかが指定されていません。ただし、UTF-16 にはバイト順序を示す情報が含まれていません。どの解析が文字化けしていないかを手動で確認することはできません。文字スペース文字

(

U FEFF

ZERO WIDTH NO-BREAK SPACE) は UTF-16 でシリアル化され、ファイルの先頭に詰められます。このように、UTF-16 パーサーはファイルの最初の 2 バイトを読み取ります。FE FF の場合は、ビッグエンドが最初であることを意味し、FF FE はリトルエンドが最初であることを意味します。 この詰め込まれたものをBOM(Byte Order Mark、バイトオーダーマーク)といいます。 ゼロ幅のハイフンなしのスペース文字

は、さまざまな状況で単語制限を破るための有効な文字としてもよく使用されることに注意してください。 SegmentFault の Q&A とコメントが含まれます。

メモ帳の「Unicode」と「Unicode ビッグ エンディアン」

「Unicode」だけを書くことは、まったく記憶方法の完全な表現ではありません。これには、encoding

のみが含まれており、

バイト シリアル化

は含まれていないためです。

M$ この種のエラーが発生しても、私はまったく驚きません。結論を覚えておいてください: Windows メモ帳の「Unicode」は UTF-16 です。

Windows Notepad使用“Unicode” = 小端在先的UTF-16,存储这个文件的结果如下:

 FF FE 1F 95 A4 65 F7 62 0D 00 0A 00 61 00 0D 00 0A 00
 -BOM- ----- ----- ----- ----- ----- ----- ----- ----- 
U+FEFF  951F  65A4  62F7  000D  000A  0061  000D  000A <p>Windows Notepad使用<strong>“Unicode big endian” = 大端在先的UTF-16</strong>,存储这个文件的结果如下:</p><pre class="brush:php;toolbar:false"> FE FF 95 1F 65 A4 62 F7 00 0D 00 0A 00 61 00 0D 00 0A
 -BOM- ----- ----- ----- ----- ----- ----- ----- ----- 
U+FEFF  951F  65A4  62F7  000D  000A  0061  000D  000A <h3 id="UTF">UTF-8</h3><p>UTF-8是一种用1~4个字节表示1个Unicode字符的<strong>变长的</strong>字节序列化方法。具体的实现细节看这篇文章。UTF-8的好处在于:</p><ol class=" list-paddingleft-2">
<li><p>无论是IETF的推荐,还是实际业界的执行,UTF-8都是互联网的标准。</p></li>
<li><p>向下兼容,ASCII字符UTF-8序列化后仍是原样,任何ASCII文件也是有效的UTF-8文件。</p></li>
<li><p>没有字节序问题。UTF-8的字节序是由RFC3629定死的。</p></li>
</ol><p>Windows Notepad使用UTF-8存储这个文件的结果如下:</p><pre class="brush:php;toolbar:false"> EF BB BF  E9 94 9F  E6 96 A4  E6 8B B7  0D   0A   61   0D   0A
 --BOM---  --------  --------  --------  --   --   --   --   --
U+ FEFF      951F      65A4      62F7   000D 000A 0061 000D 000A <p>注意UTF-8前边仍然塞进去了<code>U+FEFF</code>按照UTF-8序列化的结果<code>EF BB BF</code>,作为前边提到过的<strong>BOM</strong>字节顺序标记。<strong>Windows Notepad存储的UTF-8,是带有BOM标记的UTF-8</strong>。</p><p>但是如果仅仅对于UTF-8而言,字节序是没有意义的。因为UTF-8的字节序被规范写死,<code>U+FEFF</code>编码后必然得到<code>EF BB FF</code>,得不出其他的。没有二义性,BOM就失去了原本的意义。也许只有区别UTF-8文件和UTF-16文件的用处……</p><p>如何对待UTF-8文件的BOM,RFC3629的第6章有详细的规定,不加详述。</p><p>值得一提的是,BOM我想很多PHP程序员都经历过并且恨之入骨——PHP不认识文件中的BOM头并会将其作为HTTP Response的正文送出。这甚至在无缓冲的情况下,会导致<code>header()</code>等必须在Response开始前执行的函数直接失效。</p><p>所以PHP程序员总是会喜欢<strong>UTF-8 without BOM</strong>的编码方式——这基本也就宣布了Windows下的PHP开发,Windows Notepad完全的淘汰出局,哪怕是任何一星半点代码的临时修改。</p><h2 id="番外-Notepad-的字符编码测试">番外:Notepad++的字符编码测试</h2><p>ANSI没有区别,但Notepad++支持选择多国编码的不同ANSI编码方式(类似浏览器里选编码),可以轻松生成或读取Shift-JIS等其他字符集的文件。适合用于对付日文老游戏的<code>README</code>等文档。</p><p>UCS-2 Big Endian、UCS-2 Little Endian和前边UTF-16的两个例子一致。注意UTF-16的文件不提供“无BOM”的存储方法(提供了就坏了)。</p><p>UTF-8仍然代表“带有BOM标记的UTF-8”。但同时提供PHP程序员最爱的UTF-8 without BOM,就像:</p><pre class="brush:php;toolbar:false"> E9 94 9F  E6 96 A4  E6 8B B7  0D   0A   61   0D   0A
 --------  --------  --------  --   --   --   --   --
U+ 951F      65A4      62F7   000D 000A 0061 000D 000A <p>Simple and clean.</p><p>注解<br>[注A] 对于一个双(多)字节的数,一定会按8位截断为1字节后写盘。那么写盘时先写最低8位还是先写最高8位,就是所谓的“字节序”(Endian)问题。例如,数0x01020304写盘时,是先写最低8位的04 03 02 01,还是先写最高8位的01 02 03 04?<br>
  先写低8位的叫做小端在先(little-endian),先写高8位的叫做大端在先(big-endian)。实际采用何种字节序受系统环境、标准规范和软件实际编写的多方面控制,不一概而论。<br>[注B] 字节序如果我没弄错,是GB2312采用的EUC字符编码方法控制的。<br>[注C] 本文并不严格区分UTF-16与UCS-2。<br>[注D] Unicode的最大值实际上达到了U+10FFFF,超出了两个字节能够存储的限度。<br>
  但Unicode由于历史原因,留下了U+D800~U+DFFF这一段永久保留不用的空缺区域。<br>
  因此对U+10000及以上的字符,UTF-16借助了这部分空缺区域,对这些编码超大的字符打破2字节16位的惯例,特别的用4字节32位去表示之。<br>
  这一部分编码值太大的字符,超出了GBK的字符集范围,因此本文将完全忽略。如有机会再进一步测试。</p><p class="comments-box-content"></p>

以上がWindows メモ帳のオプションの文字エンコーディングの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
メモ帳:自由でオープンソースの性質を調べますメモ帳:自由でオープンソースの性質を調べますApr 17, 2025 am 12:07 AM

Notepadは、無料でオープンソースのテキストエディターです。 1)エントリのしきい値を低下させる自由使用、2)GPLV2ライセンスを通じてオープンソース機能が実装され、ソースコードの表示、変更、配布が可能になり、コミュニティへの参加とソフトウェアの進化が促進されます。

メモ帳の使用方法メモ帳の使用方法Apr 16, 2025 pm 08:09 PM

Notepadは、Windows用の無料テキストエディターであり、次のようなさまざまな機能を提供します。1)構文強調表示、2)オートコンプリート、3)マクロ録音、4)プラグイン拡張機能、5)カスタマイズ可能なインターフェイスと設定。

NotePadを自動的に入力する方法NotePadを自動的に入力する方法Apr 16, 2025 pm 08:06 PM

Notepad自体には自動レイアウト機能がありません。 Sublime Textなどのサードパーティのテキストエディターを使用して、自動タイプグラフィーを実現するために次の手順を実行できます。1。テキストエディターをインストールして開きます。 2。自動的に入力する必要があるファイルを開きます。 3.自動レイアウト関数を見つけて選択します。 4.エディターはテキストを自動的に入力します。 5.必要に応じてレイアウトルールをカスタマイズできます。自動タイポグラフィは、時間を節約し、テキストの一貫性とプロ意識を確保できます。

メモ帳の2つのドキュメントの類似点と類似性を比較する方法メモ帳の2つのドキュメントの類似点と類似性を比較する方法Apr 16, 2025 pm 08:03 PM

ノートパッドを使用して、2つのドキュメント間の類似点と相違点を比較するには、次の手順に従ってください。両方のドキュメントを同時にノートパッドで開きます。ドキュメントを並べて表示します。違いを見つけるために、行ごとにテキストを比較してください。違いを強調表示または強調します。将来の参照のために見つかった違いを記録します。

中国語でメモ帳を設定する方法中国語でメモ帳を設定する方法Apr 16, 2025 pm 08:00 PM

中国のインターフェースにメモ帳を設定するには、次の手順を実行します。1。ノートパッドを開きます。 2.「フォーマット」&gt;を選択します。 "フォント"; 3.「中国語(単純化)」または「中国語(伝統)」を選択します。 4.「OK」をクリックします。

メモ帳でコードをフォーマットする方法メモ帳でコードをフォーマットする方法Apr 16, 2025 pm 07:57 PM

ノートパッドを使用してコードをフォーマットする方法は次のとおりです。コードファイルを開き、コードを[編集]メニューに移動し、「フォーマット」オプションを選択して、必要に応じて設定をカスタマイズします(オプション)

メモ帳と一致する2つのコードを比較する方法メモ帳と一致する2つのコードを比較する方法Apr 16, 2025 pm 07:54 PM

メモ帳は、2つのコードファイルの一貫性を比較できます。手順は次のとおりです。2つのコードファイルを開きます。プラグインメニューに移動し、Compare&GTを選択します。フォルダー内の2つのファイルを比較します。比較タイプを選択します。「高度な」タイプを使用することをお勧めします。 [OK]をクリックして、比較を開始します。違いの行は、異なる色で強調表示されます。

notepad++怎么对比两个文件notepad++怎么对比两个文件Apr 16, 2025 pm 07:51 PM

メモ帳は2つのファイルを比較して、違いを強調できます。2つのファイルを開きます。 「プラグイン」メニューで比較を選択します。違いは次のように表示されます。同じ行:未修正を維持します。追加のライン:緑の背景;削除された行:赤い背景;修正されたライン:黄色の背景、パーツグリーン、削除されたパーツレッド。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、