Matlabは特殊文字を入力すると「狂った」

Matlabは特殊文字を入力すると「狂った」

私はUbuntuを実行しているコンピュータを使用し、SSHを介してRedHatコンピュータに接続します。 RedHatコンピュータは、Matlabをコマンドラインモード(matlab -nodesktop)として使用します。 Matlabのバージョンは7.10.0.499 (R2010a)

ñ「特殊文字」(例:など)を生成するキーを入力するとá問題が発生します...

このエイリアスをmatlabに設定してこの問題を解決しました。

alias mat 'xmodmap -e "keycode 47 = Escape" -e "keycode 34 = Escape"; matlab -nodesktop; setxkbmap;'

...しかし、このソリューションはグローバルにこれらの変更を実行するため、他のアプリケーション(ターミナル、ブラウザなどを含む)でこれらの文字を入力することはできません(matlabの実行中)。

これはこのバージョンのMatlabに問題があることを読みましたが、この場合は新しい質問が発生します。別のコンピュータに接続されている端末(xterm)でxmodmapを使用している場合、これらの変更が私のセッションにグローバルに伝播されるのはなぜですか?

ベストアンサー1

ローカルおよびリモートシステムのロケール設定が一致していることを確認してください。echo $LC_CTYPEローカル端末とSSHセッションで実行します。一致しない場合は、Matlabを使用して再試行してLC_CTYPE正しい値に設定してください。それでもうまくいかない場合は、withexport LC_CTYPE=Cまたはwithを使用してみてくださいexport LC_CTYPE=en_US(暗い場所での撮影、Matlabエラーの性質がわかりません)。

UTF-8ロケールを使用している場合は、latin1などの8ビットロケールを試してください。

LC_CTYPE=en_US luit ssh redhat-host

ロケールを調整しても役に立たない場合は、より根本的なアプローチを試してください。つまり、stty istripMatlabを起動する前に端末で実行してください。入力した文字の8番目のビットが削除されます。アクセント文字を入力すると、MatlabはガベージASCII文字を受け取りますが、混乱を招くことはありません。en_USlatin-1ロケール(たとえば)に切り替えるだけでなく、これを行う必要があります。他のロケール、特にUTF-8では、ガベージ文字が制御文字になる可能性があります。

多くのstty設定がありますが、ASCII以外の文字を無視する設定は考えられません。試している場合は、stty通常のデフォルトに戻すことができますstty sane。これらの変更は端末にローカルに適用されます。

おすすめ記事