検索
ホームページphp教程PHP开发Linux でファイルエンコーディングを UTF-8 に変換する方法

このチュートリアルでは、文字エンコーディングの意味を説明し、コマンド ライン ツールを使用して、ある文字エンコーディングを使用するファイルを別のエンコーディングに変換する例をいくつか示します。最後に、Linux でさまざまな文字エンコーディングを使用しているファイルを UTF-8 エンコーディングに変換する方法を見ていきます。

バイナリデータを除いて、コンピューターは文字、数字、その他人間が理解できるものを理解して保存できないことはすでにご存知かもしれません。バイナリ ビットには、0 または 1、true または false、yes または no の 2 つの値しかありません。文字、データ、画像など、その他すべてのものは、コンピューター処理のためにバイナリ形式で表現される必要があります。

簡単に言えば、文字エンコーディングは、生の 0 と 1 を実際の文字に解釈するようにコンピューターに指示する方法です。これらの文字エンコーディングでは、文字は数値の文字列として表されます。

ASCII、ANCI、Unicode など、多くの文字エンコーディング スキームがあります。以下は ASCII エンコーディングの例です。

字符            二进制 
A               01000001 
B               01000010

Linux では、コマンド ライン ツール iconv を使用して、あるエンコーディングを使用しているテキストを別のエンコーディングに変換します。

file コマンドを使用し、-i または --mime パラメーターを追加すると、ファイルの文字エンコーディングを表示できます。このパラメーターを使用すると、プログラムは次の例のような文字列の mime (多目的インターネット メール拡張子) データを出力できます。 :

$ file -i Car.java 
$ file -i CarDriver.java

Linux でファイルエンコーディングを UTF-8 に変換する方法

Linux でファイルのエンコーディングを表示する

iconv ツールは次のように使用されます:

$ iconv option 
$ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile

ここで、-f または --from-code は入力エンコーディングを示し、-t または --to-エンコーディングは出力エンコーディングを指定します。

既存のエンコードされた文字セットをすべてリストするには、次のコマンドを使用できます:

$ iconv -l

Linux でファイルエンコーディングを UTF-8 に変換する方法

既存のエンコードされた文字セットをすべてリストする

ファイルを ISO-8859-1 エンコードから UTF-8 エンコードに変換します

以下、あるエンコーディング スキームを別のエンコーディング スキームに変換する方法を学びます。次のコマンドは、ISO-8859-1 エンコードを UTF-8 エンコードに変換します。

次の文字が含まれている次のファイル input.file について考えてみましょう:

� � � �

まず、このファイルのエンコーディングを調べてから、ファイルの内容を調べます。最後に、すべての文字を UTF-8 エンコーディングに変換できます。

iconv コマンドを実行した後、次のように出力ファイルの内容と使用される文字エンコーディングを確認できます。

$ file -i input.file 
$ cat input.file  
$ iconv -f ISO-8859-1 -t UTF-8//TRANSLIT input.file -o out.file 
$ cat out.file  
$ file -i out.file

Linux でファイルエンコーディングを UTF-8 に変換する方法

Linux で ISO-8859-1 を UTF-8 に変換します

注: //IGNORE 文字列が出力エンコーディングの後に追加される場合、変換できない文字は変換されず、変換後にプログラムはエラー メッセージを表示します。

上記の例の出力エンコーディング (UTF-8//TRANSLIT) の後に文字列 //TRANSLIT が追加された場合、変換される文字は形式変換原則を使用しようとします。つまり、出力エンコード スキームで文字を表現できない場合、その文字は類似した形状の文字に置き換えられます。

また、文字が出力エンコーディングに含まれておらず解読できない場合、出力ファイルでは疑問符に置き換えられます。

複数のファイルを UTF-8 エンコーディングに変換します

トピックに戻ります。複数のファイル、または特定のディレクトリ内のすべてのファイルを UTF-8 エンコーディングに変換したい場合は、次のような単純なシェル スクリプトを作成し、encoding.sh という名前を付けます。

#!/bin/bash 
### 将 values_here 替换为输入编码 
FROM_ENCODING="value_here" 
### 输出编码 (UTF-8) 
TO_ENCODING="UTF-8" 
### 转换命令 
CONVERT=" iconv  -f   $FROM_ENCODING  -t   $TO_ENCODING" 
### 使用循环转换多个文件 
for  file  in  *.txt; do 
$CONVERT   "$file"   -o  "${file%.txt}.utf8.converted" 
done 
exit 0

ファイルを保存すると、実行可能アクセス許可が追加されます。 。変換するファイル (*.txt) が配置されているディレクトリでこのスクリプトを実行します

$ chmod  +x  encoding.sh 
$ ./encoding.sh

重要: 特定の文字エンコーディングを別のエンコーディングに変換するなど、このスクリプトをより一般的なものにすることもできます。これを実現するには、FROM_ENCODING 変数と TO_ENCODING 変数の値を変更するだけです。出力ファイルのファイル名を「${file%.txt}.utf8.converted」に変更することを忘れないでください。

詳細については、iconv のマニュアル ページを確認してください。

$ man iconv

このガイドを要約すると、文字エンコーディングの概念を理解し、あるエンコーディング スキームを別のエンコーディング スキームに変換する方法を知ることは、テキストを処理するコンピュータ ユーザー、特にプログラマーにとって必須です。



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

SecLists

SecLists

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