MSYS 的 iconv.exe --silent 无法正常工作?

简介:

和下面这位老兄遇到了同样问题,的确,改了-s就可以了。

 

這幾天把我用來編譯 filezilla3 的 MinGW/MSYS 環境改成 gcc 4.5.x (之前是用 gcc 3.4.5), 結果在處理 libgpg-error 時, 會停在這個訊息:

 
 
make[3]: Entering directory `/usr/src/libgpg-error-1.10'
set -e; \
for i in $(./potomo --get-linguas ./po); do \
/bin/mkdir -p "/usr/local/share/locale/$i/LC_MESSAGES" || true; \
rm -f "/usr/local/share/locale/$i/LC_MESSAGES/libgpg-error.mo" \
2>/dev/null || true; \
./potomo ./po/$i.po \
"/usr/local/share/locale/$i/LC_MESSAGES/libgpg-error.mo" ; \
done
potomo: '
./po/cs.po' keeping UTF-8
potomo: '
./po/de.po' keeping UTF-8
potomo: '
./po/fr.po' keeping UTF-8
potomo: '
./po/it.po' keeping UTF-8
potomo: '
./po/nl.po' keeping UTF-8
potomo: '
./po/pl.po' converting from ISO-8859-2 to utf-8

查看一下執行的指令, 應該是執行 iconv.exe (會一直使用約 12% 左右的 CPU), 放著不管跑一晚上, 也跑不出結果.

potomo 是一個 bash 的 script, 所以看了一下這地方是處理是:

 
 
case "$fromset" in 
    utf8|utf-8|UTF8|UTF-8) 
        echo "potomo: '$infile' keeping $fromset" >&2 
        msgfmt --output-file="$outfile" "$infile"
        ;;   
    *)
        echo "potomo: '$infile' converting from $fromset to utf-8" >&2
        iconv --silent --from-code=$fromset --to-code=utf-8 < "$infile" |\
            sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/"|\
            msgfmt --output-file="$outfile" -
        ;;
esac

試 著自己把那個 iconv 指令, 果然會停住. 試了一下, 把 --silent 拿掉就正常. 看一下 iconv --help 的說明, --silent 與 -s 是一樣的意思. 同一個指令, 改用 -s 來取代 --silent, 結果居然可以正常執行. 真是一個奇怪的問題.

如果你有碰到 iconv 跑不出來的問題, 可以看看有沒有用到 --silent 吧, 改用 -s 試看看吧.










本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/984805,如需转载请自行联系原作者
目录
相关文章
|
自然语言处理
openEuler 打开图形菜单报错:make [1]:‘ [ scripts/i Makefile. host:9: scripts/ kconfig/ lexer. lex.c]错误 127
openEuler 打开图形菜单报错:make [1]:‘ [ scripts/i Makefile. host:9: scripts/ kconfig/ lexer. lex.c]错误 127
383 0
|
PHP Windows
Windows下laravel/lumen中执行phpunit报phpunit: command not found解决办法
Windows下laravel/lumen中执行phpunit报phpunit: command not found解决办法
171 0
Windows下laravel/lumen中执行phpunit报phpunit: command not found解决办法
真正解决办法:编译freeswitch错误,You must install libavformat-dev to build mod_av
真正解决办法:编译freeswitch错误,You must install libavformat-dev to build mod_av
331 1
|
Shell Windows
msys2提示:-bash: cmake: command not found
msys2提示:-bash: cmake: command not found
368 0
|
Windows
WINDOWS/cygwin编译lame出错:error: ‘_O_BINARY‘ undeclared
WINDOWS/cygwin编译lame出错:error: ‘_O_BINARY‘ undeclared
167 0
|
C++
cygwin/msys: fatal error LNK1104: 无法打开文件“kernel32.lib”
cygwin/msys: fatal error LNK1104: 无法打开文件“kernel32.lib”
163 0
ld: file not found: python.exe报错解决
ld: file not found: python.exe报错解决
166 0
|
Linux
LINUX编译x265:make-Makefiles.bash: ccmake: not found
LINUX编译x265:make-Makefiles.bash: ccmake: not found
172 0
"\Tools\QtCreator\bin\clangbackend.exe" could not be started
"\Tools\QtCreator\bin\clangbackend.exe" could not be started
412 0