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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

1992閲覧

python 文字化け

bullton

総合スコア39

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2017/10/04 15:09

file = open('解析用.rtf', 'r')
text = file.read()
text
パスを通した後に、上記コードにてPC内のテキストエディタを開いたところ、下記のように文字化けしてしまいました。
どのような、方法で解決することができますでしょうか。
"{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf830\n{\fonttbl\f0\fnil\fcharset128 HiraMinProN-W3;\f1\froman\fcharset0 Times-Roman;}\n{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}\n{*\expandedcolortbl;;\cssrgb\c0\c0\c0;}\n\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0\n\deftab720\n\pard\pardeftab720\sl340\sa240\partightenfactor0\n\n\f0\fs29\fsmilli14667 \cf2 \expnd0\expndtw0\kerning0\n'8c'bb'8d'dd'81'43'90'6c'8d'48'92'6d'94'5c'82'cd'83'66'83'42'81'5b'83'76'83'89'81'5b'83'6a'83'93'83'4f\n\f1 (\n\f0 '88'c8'89'ba'90'5b'91'77\n\f1 \n\f0 '8a'77'8f'4b\n\f1 )\n\f0 '82'f0'8e'e5'8e'b2'82'c9'91'e6'8e'4f'8e'9f'83'75'81'5b'83'80'82'f0'8c'7d'82'a6'82'c4'82'a2'82'e9\n\f1 . \n\f0 '90'5b'91'77'8a'77'8f'4b'82'cd'81'43'83'6a'83'85'81'5b'83'89'83'8b'83'6c'83'62'83'67'83'8f'81'5b'83'4e\n\f1 (\n\f0 '88'c8'89'ba\n\f1 NN) \n\f0 '82'c6'8c'c4'82'ce'82'ea'82'e9'90'6c'8a'd4'82'c9'82'a8'82'af'82'e9'94'5d'82'cc'8f'88'97'9d'82'f0'83'52'83'93'83'73'83'85'81'5b'83'5e\n\f1 \n\f0 '81'5b'8f'e3'82'c9'96'cd'82'b5'82'bd'83'82'83'66'83'8b'82'f0'97'70'82'a2'82'e9\n\f1 .\n\f0 '82'b1'82'ea'82'f0'97'70'82'a2'82'e9'82'b1'82'c6\n\f1 \n\f0 '82'c5'81'43'83'52'83'93'83'73'83'85'81'5b'83'5e'81'5b'82'aa'90'6c'8a'd4'82'c6'93'af'97'6c'82'c9'8a'77'8f'4b'82'b5'81'43'94'bb'92'66\n\f1 \n\f0 '82'f0'8d'73'82'a4'82'b1'82'c6'82'aa'82'c5'82'ab'82'e9'82'e6'82'a4'82'c9'82'c8'82'e9\n\f1 .\n\f0 '82'b5'82'a9'82'b5'81'43'8b'ef'91'cc'93'49\n\f1 \n\f0 '82'c9'83'52'83'93'83'73'83'85'81'5b'83'5e'81'5b'82'aa'82'c7'82'cc'82'e6'82'a4'82'c9'8a'77'8f'4b'82'b7'82'e9'82'a9'88'ea'94'ca'82'c9\n\f1 \n\f0 '97'9d'89'f0'82'b3'82'ea'82'c4'82'a2'82'c8'82'a2\n\f1 .\uc0\u8232 \n\f0 '82'bb'82'b1'82'c5'81'43'96'7b'97'd6'8d'75'82'c5'82'cd\n\f1 NN \n\f0 '82'c9'82'a8'82'af'82'e9'8a'77'8f'4b'82'cc'8e'64'91'67'82'dd\n\f1 \n\f0 '82'f0'97'9d'89'f0'82'b7'82'e9'82'b1'82'c6'82'f0'96'da'93'49'82'c6'82'b7'82'e9\n\f1 .\n}"

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

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

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

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

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

guest

回答1

0

ベストアンサー

拡張子が.rtf(リッチテキストファイル)であるのが原因です。

何かしらの(例えばutf-8などの)バイト列のようですからそれをコードで解析することも可能だとは思いますが、
もし.rtfである必要がないならば、拡張子は.txtで保存できるエディタで保存しましょう。

テキストエディットの場合は「フォーマット」->「標準テキストにする」で.txtにできます。一度.rtfで保存してしまったファイルの拡張子を.txtに変えても文字化け(文字コードの状態)は直らないので注意しましょう。

正直.rtfをプログラミングで使うのは骨が折れるだけだと思うので、オススメしません。

追記:

質問に対する明確な答えを書いていませんでしたね。。すみません。。

まず文字化けではないです
試しにpython抜きで、解析用.rtfの拡張子を.txtに無理矢理変更してテキストエディット以外のエディタで開いてみてください。似たようなコードが書かれているはずです。
もともと.rtfのファイルはMacのテキストエディットならば解釈できても、普通のエディタでは解釈できないんです。

なぜダブルエスケープ(\ではなく\になった)されたかはちょっと挙げていただいたコードからはわからないですけど、
「そもそも.rtfのファイルを使わなければこのようなことは起こらずに済む」ということを言いたかったです。

もとのファイルが上書きされてしまったのでしょうか?その場合はコメントください。対策を考えます。

投稿2017/10/04 15:37

編集2017/10/04 18:42
namnium1125

総合スコア2043

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

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

bullton

2017/10/05 14:58

ご丁寧にありがとうございます。 rtfという拡張子には注目せずに、文字化けだと思い込み文字コードに関する解決法ばかり調べておりました。 お陰様で無事解決することができました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問