>>147
へー beef (牛肉) が unicode で「ななし」になるってなかなか面白くないかい。とっくに既出?

それはさておき最近の Emacs だと内部エンコーディングが utf-8 なんじゃなかったっけ。
だから 3 byte になるのは当然だよね。
環境に依存するので char-to-string 使うのはあんまりよくないかもしれない。

(defun int16-to-string (int16)
(let ((s (make-string 2 0)))
(aset s 0 (logand (lsh int16 0) #xff))
(aset s 1 (logand (lsh int16 -8) #xff))
s))

> 自分でバイトオーダを意識して 1byte 単位で切り出して変換するしかないのでしょうか。

そういうことになるのかな。