Cソースの検索までは行っていましたが、この機能が見つかりませんでした。Unicode(UTF-8)コードポイントをバイトに変換する
具体的には:UnicodeポイントはU + ########で表されます。これは簡単に取得できます。必要なのは、文字がファイルに書き込まれる形式です(例)。 Unicodeコードポイントは、右端のバイトの7ビットが最初のバイトに書き込まれ、次のビットの6ビットが次のバイトに書き込まれるようにバイトに変換されます。 Emacsは確かにそれを行う方法を知っていますが、UTF-8でエンコードされた文字列のバイトシーケンスをバイトシーケンス(それぞれ8ビットを含む)として取得する方法はありません。
get-byte
またはmultybite-char-to-unibyte
などの機能は、8ビットを超えて使用できない文字でのみ機能します。 get-byte
と同じものが必要ですが、マルチバイト文字の場合は、整数0..256の代わりに整数0..256のベクトルまたは1つの長い整数0..2^32を受け取ります。
EDIT
念のために誰もが後で必要になります。
(defun haxe-string-to-x-string (s)
(with-output-to-string
(let (current parts)
(dotimes (i (length s))
(if (> 0 (multibyte-char-to-unibyte (aref s i)))
(progn
(setq current (encode-coding-string
(char-to-string (aref s i)) 'utf-8))
(dotimes (j (length current))
(princ (format "\\x%02x" (aref current j)))))
(princ (format "\\x%02x" (aref s i))))))))