質問: みなさん初めまして、どうぞ宜しくお願いいたします。 早速ですが、ある構造計算プログラムをpythonで作成しその結果を、exp.txtで書き出しています。書き出した中身は以下の様な内容です。 `.. |t1| replace:: 100` `.. |t2| replace:: ok` これを、ひな型としてsphinxであらかじめ作成しておいたrst内の先頭行で `.. include:: exp.txt` で読込んで `|t1|`で置換はできるのですが、txt内の `.. |t3| replace:: あいう` といった文字列である場合、置換が行われません。 英数字の場合でしか置換ができませんでしょうか? `.. literalinclude:: exp.txt` も試しましたがうまくいきませんでした。 出力側の文字コードの問題なのかそれとも他に記法があるのか教授下さい。
回答: exp.txt の文字コードが Shift_JIS となっているのではないでしょうか? Shift_JISのファイルを include すると次のようにエラーが出てファイルが読み込まれません。 ``` UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 61: invalid start byte /Users/set0gut1/tmp/stackoverflow/index.rst:15: WARNING: Undefined substitution referenced: "t1". /Users/set0gut1/tmp/stackoverflow/index.rst:15: WARNING: Undefined substitution referenced: "t2". /Users/set0gut1/tmp/stackoverflow/index.rst:15: WARNING: Undefined substitution referenced: "t3". ``` この場合は exp.txt を UTF-8 に変換すると解決します(`nkf`が便利です)。 よろしくお願いします。