そもそもプログラミング言語システムの挙動が locale とかに引きずられるのは、おかしいと思うんだ。実装側からするとただメンドイだけでバグも入り易いし。まあいいや。 一番簡単なのは、 # let printer ppf = Format.fprintf ppf "\"%s\"";; val printer : Format.formatter -> string -> unit = <fun> # #install_printer printer;; # "あああ";; - : string = "あああ" 壊れた日本語文字列を受け取った場合の処理も printer をもっと拡充すりゃできるから自分でやってね。 SJIS は前も書きましたが残念なので、残念です。残念ですね。