Windowsでのテキスト保存(ANSI)方法
Macで作成したメモをコピーして、Windowsのメモ帳で保存しようとすると、
「このファイルは、ANSIテキストフアイルとして保存すると失われてしまうUnicode形式の文字を含んでいます」
とエラーが出て、文字コード「ANSI」で保存することが出来ません。
文中のUnicodeの情報を適宜変換・削除したいのですが、かんたんにみつけることはできますか?
よろしくお願いします。
Mac mini, OS X Mavericks (10.9.5)
Macで作成したメモをコピーして、Windowsのメモ帳で保存しようとすると、
「このファイルは、ANSIテキストフアイルとして保存すると失われてしまうUnicode形式の文字を含んでいます」
とエラーが出て、文字コード「ANSI」で保存することが出来ません。
文中のUnicodeの情報を適宜変換・削除したいのですが、かんたんにみつけることはできますか?
よろしくお願いします。
Mac mini, OS X Mavericks (10.9.5)
メモの内容をテキストエディットにコピー&ペーストして、保存するときにWindows,dosで保存(保存すると失われる、、、とかの警告は無視)すれば良いのでは?
何度かエラー無視して保存してみたことがあるのですが、ここで保存したメモをiOSアプリに取り込んで閲覧すると文字化けしてしまうようなのです。
文字コード「ANSI」で保存すると文字化けしないことがわかったので、これまではこのエラーが出たら、すべての文章で怪しそうなのを弾いて保存していました。
Mac上でも、Windows上でもいいので、簡単にUnicode形式の文字を検索・抽出することが出来ないかと思い質問させていただきました。
> ここで保存したメモをiOSアプリに取り込んで閲覧すると文字化け
えっ、Windowsのメモ帳で読む話とは違うの?
iOSの話なら、MacのメモとiOSのメモはiCloudで同期すれば何の問題もなく文字化け無縁で同期できると思いますが。
Windowsで問題なら、iCloudにアクセスしてそこのメモを見れば良いのでは?
何をどうするときの問題なのか要点を絞って書いてもらわないとコメントしようがありません。
それと、文字コードとしてはutf-8の方がはるかに便利で優れてます(使える文字種は比べ物になりません)。こちらで済ませられるようなアプリを利用するとかの方が前向きの対応になると思います。
たびたびありかとうございます。
説明不足で申し訳ありません。
もしMacで完結できるならそれでやってみようと思います。
いままではMacのメモでテキストを作り、Windowsのメモ帳でANSIテキストファイルで保存したtxtファイルをi文庫HDに転送して閲覧していました。
Mac上でutf-8形式で保存するには、どのようなアプリを使えばよいでしょうか?
テキストエディットでリッチテキストで保存したファイルは文字化けしてしまいました。
> テキストエディットでリッチテキストで保存したファイルは文字化け
それは何(どんなアプリ)で開いたときの話ですか?
テキストエディットならデフォールトでutf-8なんですが。保存したテキストを別のアプリで使いたいなら、リッチテキストじゃなくて、テキスト形式で保存する方が良いかもしれません。macosxでもwindowsでも内部的にはutf-8を使ってます。macosxだと、ユーザが目にする文字コードも多くの場合utf-8です。しかし、windowsの場合は、今でも、microsoft独自拡張のshift_jis(これをansiと呼称してるみたい。しかし、ansiとは、本来は、米国のjis規格みたいなもので、microsoftが拡張したshift_jisをansiと呼ぶのは問題が多い。cp932と呼ばれるもので、本来のansiとは無関係)にすることが多いようです。
同じutf-8でも、macosx、windowsでは扱いに微妙に違う部分があります。このため、macosxで作成した文書をwindowsで見るようなことをすると、古いソフトだと文字化けすることもあるかもしれません。
i文庫HDに転送して閲覧していました。
i文庫HDは使ったことがないけど、これがそもそも面倒じゃないのなぁ。
素直にiCloudやgoogleのメモを使えば問題ないと思う。
ありがとうございます。
アプリはiPad上で使っているi文庫HDというアプリです。
もう何年も前から使っていますが、最初に文書をテキストエディットで作り、保存したファイルを転送させて開くと文字化けしていました。
調べると、Windows上で上記の形式で保存したファイルなら問題ないことがわかり、現在まで使っている次第です。
前のことで忘れてしまっているのですが、unicodeの形式だと問題があるからなのだろうと理解していました。
もしそういう方法があればとお聞きしたのは、この「unicode形式の文字」を検索し抽出することができたらいいなと考え質問してみました。
そうですね。
確かに面倒ではありますが、かなりの分量の文章を本のような形式にして読みたくて使い始め、すでに何冊か保存して愛用しているため、なかなか他に乗り移れずにいます。
文字コードについて:(まとめも兼ねて)
Shift JIS —
ASCII文字や半角カナと同時使用できるようにJIS第1第2水準の漢字(文字)を2バイトで表現できるようにしたもの。基本的には日本語+α
CP932 —
Shift JIS にMSがShift JISの未定義領域に文字を追加したもの。
UNICODE —
全世界の文字に番号をつけて一つの体系でカバー(してしまおうと)するもの。
(確かもともとは一文字を2バイトで表そうとしていたが足りなくなって、今では4バイト相当)
JISでいうと確か第4水準相当まで含んでいたと思います。
UTF-8 —
UNICODE をコンピュータ上で表現するためのフォーマット。
OS Xで標準としているのはそのバリエーションの一つで UTF-8-MAC と呼ばれたりする。
で本題に戻ると、CP932で保存しようとして失われる文字はUNICODEだからではなくて、その文字がCP932に存在しない文字だからでしょう。
> テキストエディットでリッチテキストで保存したファイルは文字化けしてしまいました
リッチテキストは文字の修飾(太字や下線、斜体など)や行のスタイル(右/左揃え、改行幅など)の情報も保存できるようにしたもので文字コードとは無関係です。
文字の変換を行うツールも探せばあると思いますが、私ならターミナルからコマンドでやってしまうところです。
こんなところでしょうか。(変換できない文字は@で挟んだ16進数で表示。@にしたのは探しやすいかなと思っただけで時に意味はありません)
iconv --unicode-subst='@%x@' -f UTF-8-MAC -t SHIFT-JIS < source-utf8.txt > target-sjis.txt
詳しい解説をいただきありがとうございます。
はにさんも説明していただきましたが、SHIFT JIS、ANSI、CP932など文字コードは複雑ですね。
ターミナルからのコマンド方法を教えていただきありがとうございます。
Mac上で完結できるならトライしてみようと思います。
まず、i文庫HD がサポートしてるファイル形式とテキストエンコーディングをアプリの開発元に確認し、それに従ってファイルを保存すべきかと。
で、CP932 (日本語 (Windows, DOS)) か UTF-8 でファイルを保存したい...ということであれば、mi や CotEditor 等を使ってみてはどうでしょうか?保存できない文字が含まれてる場合の検出機能が備わってます。
mi
CotEditor
> この「unicode形式の文字」を検索し抽出することができたらいいな
何か誤解されてません?
テキストの中に「unicode形式の文字」が散在してるわけではありません。
テキストをutf-8で保存すれば、そのテキスト全体がunicode形式です(どの文字もutf-8)。
なお、ToMiさんがコマンドでutf-8からshiftjisに変換する方法を書かれてますが、結果はテキストエディットを使うのと変わりないと思いますよ(多分内部的には、ToMiさんご紹介のiconvを利用してるだけですので)。テキストエディットでは、日本語の場合、保存するときに文字コードをUTF-8、MacOS、Windows、EUC、ISO2022JP、ShiftJISに指定できます。MacOS、Windows、ShiftJISなどと別れてるのは、改行コードのことも考えてるのではないかと思います。
他のテキストエディターでも同じような機能があるものは多いです。
i文庫HDよくわかりませんが、ここを読むと
https://itunes.apple.com/jp/app/i-wen-kuhd/id369111608?mt=8
PDFに対応しているようなので
メモをテキストエディットからPDFで保存するとどうなのでしょう?
ファイル>PDFとして書き出す…
Mavericksなら、印刷からPDFかも
「このファイルは、ANSIテキストフアイルとして保存すると失われてしまうUnicode形式の文字を含んでいます」
というエラーがでて、該当との文字を削除すると、正常に保存されるので、テキスト全体が問題だとは思えないのですが、どうなのでしょうか?
ありがとうございます。検討してみます。
Windowsでのテキスト保存(ANSI)方法