如何获得重音字母才真正在bash上工作?

时间:2012-10-26 20:51:15

标签: bash cygwin non-ascii-characters

我在cygwin上的bash安装不能正确处理重音字母。我尝试添加

set input-meta on    # to accept 8-bit characters
set output-meta on   # to show 8-bit characters
set convert-meta on  # to show it as character, not the octal representation

到我的输入rc,但这还不太有效。的确,如果我输入

$ echo ù

然后在按下输入之前,它会自动更改为

$ echo \303

虽然输出正确,但我得

$ echo \303
ù

对于任何其他重音字母,我得到相同的结果。通常虽然我使用非意大利语键盘,但我使用autohotkey用带有重音字母的撇号替换字母。在这种情况下,重音字母将替换为\302,并根据字母打印垃圾:为3y打印ù,为¢打印ò $ uname -a CYGWIN_NT-6.1-WOW64 ferdi-Asus 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin $ locale LANG=it_IT.UTF-8 LC_CTYPE="it_IT.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="it_IT.UTF-8" LC_COLLATE="it_IT.UTF-8" LC_MONETARY="it_IT.UTF-8" LC_MESSAGES="it_IT.UTF-8" LC_ALL= $ tty /dev/pty1 ,而其他任何东西都没有。

如何让所有这些变得有意义?

编辑:我的语言环境设置,cygwin版本和终端如下

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -

我只是点击Cygwin终端链接就可以调用它。它重定向到

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
...
::avra'::avrà
::avro'::avrò
...

autohotkey脚本的相关部分如下

{{1}}

1 个答案:

答案 0 :(得分:15)

要使用Cygwin通过Mintty 1.1.2在bash上添加重音字母,请执行以下操作:

  1. 转到菜单(如果您没有看到任何菜单,请右键点击您的终端)。
  2. 点击选项...
  3. 点击文字
  4. 区域设置更改为C
  5. 字符集更改为ISO-8859-1 (Western European)
  6. Changing Locale and Character set in Mintty 1.1.2

    然后测试一下:

    Echoing accented letters in Mintty 1.1.2