質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

2回答

6939閲覧

文字コード変換

退会済みユーザー

退会済みユーザー

総合スコア0

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2015/12/22 11:55

hoge.txtの文字コードがASCIIになっています.
そのためか,ファイルを開くと
b'\xe3\x82\xa8\xe3\x82\xad\xe3\x82\xb5\xe3\x82\xa4\xe3\x83\x88'
b'\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xa0'
このようにコードで表示されるので困っています,
これをUTF-8等に変換しようと思い,nkfコマンドを実行したのですがうまくいきません.

S:>nkf -g hogee.txt ASCII S:>nkf -w --overwrite hogee.txt S:>nkf -g hogee.txt ASCII

どうしたらよいでしょう.
環境はwindows8.1です.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Pythonをお使いなのですね!?

b'\xe3\x82\xa8\xe3\x82\xad\xe3\x82\xb5\xe3\x82\xa4\xe3\x83\x88' b'\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xa0'

というのは、PythonのByte列が変換されないままファイル出力されてしまったものなので…Pythonを使えば簡単に元に戻せますよ。

たとえば、decode.py などの名前で下記コードを記載し、

Python

1# -*- coding: utf-8 -*- 2 3import codecs 4 5fin = open('test.txt', 'r') 6fout = open('mod_test.txt', 'w') 7 8for line in fin: 9 str = eval( line.decode('utf-8') ) 10 fout.write(str + '\n') 11 12fin.close() 13fout.close()

以下のように実行すればUTF-8に変換できますよ。

C:¥…> type test.txt b'\xe3\x82\xa8\xe3\x82\xad\xe3\x82\xb5\xe3\x82\xa4\xe3\x83\x88' b'\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xa0' C:¥…> C:¥…> python decode.py C:¥…> C:¥…> nkf32 -u mod_test.txt エキサイト ホーム C:¥…>

ちなみに、蛇足ながらPythonで文字列を扱う際には、下記ページをご参考になさると良いと思います。

Python3で文字列を処理する際の心掛け

投稿2015/12/23 11:42

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ファイルの内容が、文字通り、
b'\xe3\x82\xa8\xe3\x82\xad\xe3\x82\xb5\xe3\x82\xa4\xe3\x83\x88'
b'\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xa0'
のようになっているのではないでしょうか。これは英数字記号の羅列なので文字コード変換してどうのこうのというレベルの問題では無いです。

何らかのプログラムで\xe3などを該当するバイトに置換する必要があります。
nkfが入っているようですが、他にどんなツールが使えますか?

投稿2015/12/22 12:16

otn

総合スコア84544

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/12/22 12:31

ご回答ありがとうございます。 正直、ほとんど何も知らない状態で… 他のツールと言いますとどのようなものを指すのでしょうか?
otn

2015/12/22 21:13 編集

> 他のツールと言いますとどのようなものを指すのでしょうか? プログラムが書けて実行できるような環境です。 > 正直、ほとんど何も知らない状態で… であれば、自分でどうにかするのをあきらめて、ファイルの作成者に「読めない」旨を伝えて対処してもらうのがいいと思います。
退会済みユーザー

退会済みユーザー

2015/12/22 13:20

プログラムにはPython3系を使用しています。 ファイルは自分でいじっている最中にこのようになってしまいました。 元々、utf-8だったのですが、何故か一部utf-8で読み込むことが出来ず試行錯誤していたところです。
otn

2015/12/22 21:19 編集

自分で書いたプログラムの出力と言うことであれば、プログラムを正しく修正するのがいいと思います。 新規に質問を立てて、 「こういうプログラムを書いた。結果はこうなることを期待したが、こうなってしまった。プログラムのどこが悪いのか?」と聞いて下さい。 質問文の「ファイルを開くと」というのも具体的にどんなツール(メモ帳?、〇〇というエディタ?)での事なのかちゃんと書いてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問