MinTTY Unicode支持和生成错误

MinTTY Unicode支持和生成错误,unicode,msys,build-error,mintty,Unicode,Msys,Build Error,Mintty,我正在尝试使用with(从下载),我注意到它似乎没有Unicode支持 i、 e: 我无法将Unicode文本粘贴到其中(结果是垃圾) 如果我cat将Unicode文件发送到终端(无论是UTF-8还是UTF-16),我会得到垃圾 如果我使用ls并且文件名是Unicode,它会打印垃圾。将结果管道化到一个文件没有帮助,即使在支持Unicode的文本编辑器中查看,它仍然是垃圾 我不知道seettings中的UTF-8设置是如何工作的。这似乎没有改变什么 当我尝试下载源代码并构建它时,我会遇到无法解决

我正在尝试使用with(从下载),我注意到它似乎没有Unicode支持

i、 e:

  • 我无法将Unicode文本粘贴到其中(结果是垃圾)

  • 如果我
    cat
    将Unicode文件发送到终端(无论是UTF-8还是UTF-16),我会得到垃圾

  • 如果我使用
    ls
    并且文件名是Unicode,它会打印垃圾。将结果管道化到一个文件没有帮助,即使在支持Unicode的文本编辑器中查看,它仍然是垃圾

  • 我不知道seettings中的
    UTF-8
    设置是如何工作的。这似乎没有改变什么

  • 当我尝试下载源代码并构建它时,我会遇到无法解决的构建错误:

    Makefile:117: charset.d: No such file or directory
    Makefile:117: child.d: No such file or directory
    Makefile:117: config.d: No such file or directory
    Makefile:117: ctrls.d: No such file or directory
    Makefile:117: minibidi.d: No such file or directory
    Makefile:117: std.d: No such file or directory
    Makefile:117: term.d: No such file or directory
    Makefile:117: termclip.d: No such file or directory
    Makefile:117: termline.d: No such file or directory
    Makefile:117: termmouse.d: No such file or directory
    Makefile:117: termout.d: No such file or directory
    Makefile:117: winclip.d: No such file or directory
    Makefile:117: winctrls.d: No such file or directory
    Makefile:117: windialog.d: No such file or directory
    Makefile:117: wininput.d: No such file or directory
    Makefile:117: winmain.d: No such file or directory
    Makefile:117: winprint.d: No such file or directory
    Makefile:117: wintext.d: No such file or directory
    Makefile:117: wintip.d: No such file or directory
    Makefile:117: xcwidth.d: No such file or directory
    Makefile:117: res.d: No such file or directory
    windres --preprocessor 'gcc -E -xc-header -DRC_INVOKED -MMD -MP 'res.rc res.o
    gcc xcwidth.c -c -MMD -MP  -include std.h -std=gnu99 -Wall -Wextra -Werror
        -Wundef -march=i586 -mtune=pentium-m -DNDEBUG -fomit-frame-pointer -Os
    In file included from <command-line>:0:0:
    ./std.h:4:28: fatal error: cygwin/version.h: No such file or directory
    compilation terminated.
    make: *** [xcwidth.d] Error 1
    
    Makefile:117:charset.d:没有这样的文件或目录
    Makefile:117:child.d:没有这样的文件或目录
    Makefile:117:config.d:没有这样的文件或目录
    Makefile:117:ctrls.d:没有这样的文件或目录
    Makefile:117:minibidi.d:没有这样的文件或目录
    Makefile:117:std.d:没有这样的文件或目录
    Makefile:117:term.d:没有这样的文件或目录
    Makefile:117:termclip.d:没有这样的文件或目录
    Makefile:117:termline.d:没有这样的文件或目录
    Makefile:117:termmouse.d:没有这样的文件或目录
    Makefile:117:termout.d:没有这样的文件或目录
    Makefile:117:winclip.d:没有这样的文件或目录
    Makefile:117:winctrls.d:没有这样的文件或目录
    Makefile:117:windialog.d:没有这样的文件或目录
    Makefile:117:wininput.d:没有这样的文件或目录
    Makefile:117:winmain.d:没有这样的文件或目录
    Makefile:117:winprint.d:没有这样的文件或目录
    Makefile:117:wintext.d:没有这样的文件或目录
    Makefile:117:wintip.d:没有这样的文件或目录
    Makefile:117:xcwidth.d:没有这样的文件或目录
    Makefile:117:res.d:没有这样的文件或目录
    windres——预处理器'gcc-E-xc头-DRC_调用-MMD-MP'res.rc res.o
    gcc xcwidth.c-c-MMD-MP-包括标准h-std=gnu99-墙壁-Wextra-Werror
    -Wundef-march=i586-mtune=pentium-m-DNDEBUG-fomit帧指针-Os
    包含在文件中的时间:0:0:
    ./std.h:4:28:致命错误:cygwin/version.h:没有这样的文件或目录
    编译终止。
    make:**[xcwidth.d]错误1
    
  • 问题:
  • 在MSYS/MinTTY中是否可能以某种方式获得Unicode支持(这似乎是都存在的问题)

  • 如果没有,那么我从哪里获得像
    charset.d
    这样的所有文件,以及如何为MSYS构建MinTTY


  • Mintty确实支持UTF-8。您可以在其选项的文本页上启用它

    不过,MSYS确实不支持它。相反,它使用系统的“ANSI”代码页,例如美国和西欧系统上的CP1252。因此,这也是mintty对MSYS的默认设置

    此外,MSYS bash的设置使得它将每个字符的顶部位解释为元标志,因此默认情况下,它不能处理ASCII以外的任何内容。要更改此设置,请将以下内容放入
    ~/.inputrc

    set input-meta on
    set output-meta on
    set convert-meta off
    
    要获得完全的Unicode支持(开箱即用),您需要使用Cygwin 1.7,而不是Cygwin 1.3 fork(即MSYS)


    MSYS mintty需要使用gcc和make的MSYS版本而不是MinGW版本构建,因为它需要MinGW没有提供的POSIX功能。使用
    mingw get Install msys gcc msys make
    安装它们,并在运行它们时将msys可执行文件粘贴在路径的前面:
    path=/bin:$path make
    Mintty不支持UTF-8。您可以在其选项的文本页上启用它

    不过,MSYS确实不支持它。相反,它使用系统的“ANSI”代码页,例如美国和西欧系统上的CP1252。因此,这也是mintty对MSYS的默认设置

    此外,MSYS bash的设置使得它将每个字符的顶部位解释为元标志,因此默认情况下,它不能处理ASCII以外的任何内容。要更改此设置,请将以下内容放入
    ~/.inputrc

    set input-meta on
    set output-meta on
    set convert-meta off
    
    要获得完全的Unicode支持(开箱即用),您需要使用Cygwin 1.7,而不是Cygwin 1.3 fork(即MSYS)


    MSYS mintty需要使用gcc和make的MSYS版本而不是MinGW版本构建,因为它需要MinGW没有提供的POSIX功能。使用
    mingw get Install msys gcc msys make安装它们
    ,并在运行它们时将msys可执行文件粘贴在路径的前面:
    path=/bin:$path make

    谢谢您的回答!一些评论:(1)更改元位仍然无法正确打印任何内容——尽管我也将编码更改为UTF-8。(2) 我搞不懂你为什么提到Cygwin;我是用MSYS还是用Cygwin构建它?正如我所说,MSYS不支持UTF-8。因此,在mintty选项中启用它没有什么意义,除非您主要使用它来ssh到支持它的系统。我提到Cygwin是因为MSYS是一个经过修改的Cygwin 1.3(从十年前开始),它不支持UTF-8,而现代Cygwin(1.7)支持UTF-8。换句话说:如果需要支持UTF-8的POSIX层,请使用Cygwin。MSYS mintty确实需要在MSYS下建造。哦,我明白了。。。MSYS不支持Unicode,这很糟糕。谢谢你的信息。谢谢你的回答!一些评论:(1)更改元位仍然无法正确打印任何内容——尽管我也将编码更改为UTF-8。(2) 我搞不懂你为什么提到Cygwin;我是用MSYS还是用Cygwin构建它?正如我所说,MSYS不支持UTF-8。因此,在mintty选项中启用它没有什么意义,除非您主要使用它来ssh到支持它的系统。我提到Cygwin是因为MSYS是一个经过修改的Cygwin 1.3(从十年前开始),它不支持UTF-8,而现代Cygwin(1.7)支持UTF-8。换句话说:如果需要支持UTF-8的POSIX层,请使用Cygwin。MSYS mintty确实需要在MSYS下建造。哦,我明白了。。。MSYS不支持Unicode,这很糟糕。谢谢你的信息。