--- Title: 'scintilla # prog' Keywords: - ' prog' Author: yamasyuh68 Web: https://mimemo.io/m/0x5QZodJgg43Ojn --- - 一旦挫折したんだけど、シンチラをまた始めようと思う 挫折した理由は、基本的な保存の部分 作り込んでかなり使えそうになってからここで躓いた - エンコードの話です 何とか読み込みはわかってきたんだけど、保存が怖い 間違ったエンコードで読み込んでそのまま保存してしまったら文書が破壊されてしまう あるエンコードで100%エラー無しで読み込めない限り保存もすべきでは無いと思うようになった いい加減なコードである程度エンコ判定をして読み込んだときに、ちょっと見は良さそうでも文字化けしている箇所がある場合がある これはどうしようもないものなのか、エンコードを変えるべきなのか そういった判断が出来ないと保存もすべきでは無い で、前に進めなくなってきた - 秀丸で保存するときに、化けてるとそのままで良いか聞いてくるよね。この機能が必要だと思うようになってきた 全てutf-8にしてしまえば問題ないんだけど ------ # memo '①' --> 8740(CP932) 100 日本語 (シフト JIS) - CP932 文字コード表 比較 9,402文字 96.03% 日本語 (シフト JIS) - shift_jis No 7,070 92.88% 日本語 (Mac) - x-mac-japanese ㈰ 7,331 59.16% 日本語 (シフト JIS) - shift_jis2000 ① 11,414 59.09% 日本語 (シフト JIS) - shift_jis2004 ① 11,424 素晴らしいサイトだ https://uic.jp/charset/ -------------- python3.7 公式ドキュメント https://docs.python.org/ja/3.7/library/codecs.html#standard-encodings pythonが扱うコードでshiftjis系は四つ cp932 日本語 shift_jis 日本語 shift_jis_2004 日本語 shift_jisx0213 日本語 cchardet の判定ミスって事かな? shift_jis 以外なら全てイケてたのに どういうことなんだろ? cchardetだと no の判定もある、これの意味は? -------------- --------------------- pathlib の使い方 <---いいな!! https://note.nkmk.me/python-pathlib-file-open-read-write-unlink/ ----- https://docs.python.org/ja/3/library/pathlib.html >>> from pathlib import Path >>> PurePosixPath('my/library/setup.py').name ファイル名のみ 'setup.py' >>> PurePosixPath('my/library.tar').stem       同拡張子無し 'library' >>> PurePosixPath('my/library/setup.py').suffix   拡張子のみ '.py' >>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz') >>> p.with_name('setup.py')                 名前だけ変えれる PureWindowsPath('c:/Downloads/setup.py') --------------------- ・テキストの読み込みは必ずエンコードしてバイナリデータに対応する文字の絵柄を決めなければならない python ・エンコードはファイルオープン時に指定するが無ければshift-jis(cp932)になる scintilla ・LoadFile~不明だが、utf8 utf16 は正しく読み込む ・SaveFile~必ずshift-jisになる      ~utf8を指定してPythonで保存は出来るが、改行がおかしくなる そもそもファイルのload、saveはwxにはあるがQtにはない ドキュメントを見ても無いので、wxの独自仕様なのかもしれない であれば、エンコード部分はPythonでやる、scintillaには関係ないのかも scintillaでもcodePageの設定はできるが、これはキャレットの移動を制御するだけみたい setUTF8 がQtにはあるがwxにはない --------------------- (Windows) Python3でのUnicodeEncodeErrorの原因と回避方法 https://qiita.com/butada/items/33db39ced989c2ebf644 --------------------- --------------------- --------------------- --------------------- ---------------------