나는 C 소스를 검색하는 데까지 갔지만이 기능을 찾을 수는 없으며 절대적으로 있어야하기 때문에 직접 작성하고 싶지는 않습니다.유니 코드 (UTF-8) 코드 포인트를 바이트로 변환
정교하게 : 유니 코드 포인트는 U + ########로 표시됩니다. 이것은 쉽게 얻을 수 있습니다. 필요한 것은 파일에 문자를 쓰는 형식입니다 (예 :). 유니 코드 코드 포인트는 가장 오른쪽 바이트의 7 비트가 첫 번째 바이트에 쓰여지고 다음 비트의 6 비트가 다음 바이트에 쓰여지는 식으로 변환됩니다. 이맥스는 확실히 그것을하는 법을 알고 있지만, UTF-8로 인코딩 된 문자열의 바이트 시퀀스를 바이트 시퀀스 (각각 8 비트 포함)로 가져올 방법이 없다.
get-byte
또는 multybite-char-to-unibyte
과 같은 기능은 8 비트 이상을 사용하여 표현할 수없는 문자로만 작동합니다. get-byte
과 같은 것을 필요로하지만 멀티 바이트 문자의 경우 정수 0..256 대신 0..256의 정수 또는 0.1.2의 단일 정수를받을 수 있습니다.
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))))))))