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=
EFBFUnicode=U 951FGBK=
BDEFUnicode=U 65A4- # # CopyGBK=
BFBD
Unicode=U 62F7
0x61 CR=0x0D LF=0x0A
(Windows の 1 つの改行文字は 2 文字を占めます: CR LF)
EF BF BD EF BF BD 0D 0A 61 0D 0A ----- ----- ----- -- -- -- -- --単純に GBK エンコードを使用してすべての文字を保存します。最上位ビットが 1 ではない 1 バイトで ASCII と同等、それ以外の場合は 2 バイト。 ここでバイトオーダー(エンディアン)の問題に注意する必要があります
[注A]。ここでのバイトオーダーは big-endian であることがわかります。
[注 B]。以降の GBK は GB18030-2000 と下位互換性があります。
(決して「中国語しか使わない」とは言わないでください。Unicode の記号がなければ、インターネット上の絵文字は入力できません。)
encoding の異なる バイト シリアル化格納方法です。
UTF-16 と BOMここでの Unicode は、UTF-16[注 C] を指します。 UTF-16 は非常に単純かつ粗雑なシリアル化方法です。ほとんどの Unicode 文字は U 0000 ~ U FFFF [Note D] の範囲にあり、各文字は 2 バイトを使用し、Unicode エンコーディングの元の値を書き込みます。ディスクに。
(
U FEFF ZERO WIDTH NO-BREAK SPACE) は UTF-16 でシリアル化され、ファイルの先頭に詰められます。このように、UTF-16 パーサーはファイルの最初の 2 バイトを読み取ります。FE FF の場合は、ビッグエンドが最初であることを意味し、FF FE はリトルエンドが最初であることを意味します。 この詰め込まれたものをBOM(Byte Order Mark、バイトオーダーマーク)といいます。 ゼロ幅のハイフンなしのスペース文字
「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>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>番外: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 サイトの他の関連記事を参照してください。
ホットAIツール
Undress AI Tool
脱衣画像を無料で
AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。
Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ
Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現
人気の記事
人気のツール
メモ帳++7.3.1
使いやすく無料のコードエディター
SublimeText3 中国語版
中国語版、とても使いやすい
ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
ドリームウィーバー CS6
ビジュアル Web 開発ツール
SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
ホットトピック
20606
7
13699
4
12042
4
9195
17
8574
7
Win11 で開発者モードを有効にする方法 [ヒント] Win11 にサードパーティ製アプリケーションをインストールするために不可欠
Feb 09, 2026 am 07:21 AM
開発者モードを有効にすると、Windows 11 が Microsoft Store 以外のソースから UWP アプリケーションをインストールできないという問題を解決できます。方法には次のものが含まれます。 1. グラフィカル インターフェイスを有効に設定します。 2. Windows 検索のクイック ジャンプ。 3. グループ ポリシー エディター (Professional Edition 以降)。 4. レジストリ エディタ (Home Edition と互換性があります); 5. ワンクリックで PowerShell コマンドをアクティブ化します。
Win11で手書き入力の自動認識をオフにする方法 【方法】Win11で手書きパッドによるテキスト変換を無効にする
Feb 09, 2026 am 08:34 AM
Windows 11 で手書きテキスト機能を無効にする方法は 5 つあります。 1. 「指で書く」および手書きパッド関連のスイッチをオフにします。 2. TouchKeyboard および HandwritingPanel サービスを無効にします。 3. レジストリを通じて PenWorkspaceDisabled と EnableSmartSend を設定します。 4. グループ ポリシーを通じて Windows Ink ワークスペースを無効にします。 5. HID ペン入力デバイス ドライバーを無効にします。
Win11 でデフォルトの Bluetooth 送信場所を変更し、Win11 で受信ファイルの保存パスをカスタマイズする方法 [ヒント]
Feb 09, 2026 am 07:39 AM
Windows 11 Bluetooth 受信ファイルのデフォルトの保存パスは、次の 4 つの方法で変更できます。 1. 受信時に「参照」をクリックして一時的に指定します。 2. レジストリ {374DE290-123F-4565-9164-39C4925E467B} 値を変更して永続的に変更します。 3. グループ ポリシーは、「ダウンロード」フォルダー (プロフェッショナル バージョン) をリダイレクトします。 4. mklink を使用して、シンボリック リンク マッピング パスを作成します。
mysql_mysql のバージョン選択の提案をインストールするときにバージョンを選択する方法
Feb 09, 2026 pm 05:57 PM
キーは「最新」ではなく「一致」です。認証プラグイン、並べ替えルール、プロキシ ツールなどの互換性の問題を避けるために、アプリケーション フレームワーク (SpringBoot2.x/3.x、Django4.2 など) とドライバーのバージョンに従って、対応する MySQL バージョンを選択する必要があります。運用環境の場合は、8.0.33LTS バージョンが推奨されます。
mysql_mysqlでSQLファイルをインポートする方法 SQLファイルインポート方法
Feb 09, 2026 pm 05:24 PM
SQL ファイルを MySQL にインポートする最も一般的で信頼性の高い方法は、コマンド ライン ツール mysql です。このツールは、クロスプラットフォーム、高効率、安定性をサポートし、あらゆるサイズのファイルに適しています。また、ソース コマンドを通じて、または phpMyAdmin や MySQL Workbench などのグラフィカル ツールを使用して、クライアントで実行することもできます。
「クリップボード攻撃」とは何ですか?送金前に住所を確認することの重要性
Feb 25, 2026 pm 09:21 PM
クリップボード攻撃、アドレスポイズニング、同数フィッシングは仮想通貨転送の 3 つの主要なリスクであり、アドレスを手動で検証し、システムのクリップボード許可制御を有効にすることで防止する必要があります。
boot時にWin11が自動起動するように設定する方法_Windows11のアプリ起動設定
Feb 09, 2026 am 07:36 AM
Windows 11 でアプリケーションの自動起動を実装するには、次の 5 つの方法があります。 1. [設定] → [アプリケーション] → [起動] スイッチを使用します。 2. タスク マネージャーの [スタートアップ] タブを有効または無効にします。 3. ショートカットをshell:startupフォルダに置きます。 4. レジストリ HKEY_CURRENT_USER...\Run の下に新しい文字列値を作成します。 5. msconfig を使用して、タスク マネージャーの起動ページに移動します。
Windows で「0x8007045b」エラーが表示された場合の対処方法 Win10/Win11 システム アップデート障害修復
Feb 09, 2026 am 08:36 AM
0x8007045b エラーは、システムがシャットダウン/再起動中であるにもかかわらず、サービスが強制的に呼び出されていることを示します。次の手順を実行する必要があります。サードパーティの干渉サービスを無効にし、ファイアウォールと BFE サービスをリセットし、SFC/DISM を実行してシステム ファイルを修復し、Windows RE でシステムの復元を実行し、TrustedInstaller のタイムアウトしきい値を 1800 秒に変更します。





