From: Tanaka Akira Date: 2007-12-02T11:01:01+09:00 Subject: [ruby-dev:32429] eval("\"\xfd".force_encoding("utf-8")) generages garbage in error message. 以下のように eval("\"\xfd".force_encoding("utf-8")) とすると エラーメッセージに (cat -v で見えるようにして) M-`M-bM-OM-7utf-8 などというゴミが出てきます。 sh-2.05b$ ./ruby -ve 'eval("\"\xfd".force_encoding("utf-8"))' 2>&1 | cat -v ruby 1.9.0 (2007-11-28 patchlevel 0) [i686-linux] -e:1:in `eval': -e:1:in `eval': (eval):1: syntax error, unexpected tIDENTIFIER, expecting $end (SyntaxError) ...M-lM-bM-RM-7utf-8 ... ^ from -e:1:in `
' sh-2.05b$ 1.8 で似たことを行うと unterminated string meets end of file になるのですが、そちらが適切だと思います。 sh-2.05b$ ./ruby -v -Ku -e 'eval("\"\xfd")' ruby 1.8.6 (2007-12-01 patchlevel 5000) [i686-linux] -e:1: (eval):1: compile error (SyntaxError) (eval):1: unterminated string meets end of filesh-2.05b$ ただ、1.8 では、unterminated string meets end of file の後に 改行が出ず、シェルのプロンプトがつながってしまいます。 -- [田中 哲][たなか あきら][Tanaka Akira]