控制台上gcc编译输出信息中出现奇怪的字符

8

在 Ubuntu 10.04-x32 操作系统下的 bash shell 中,使用以下 Makefile 和 gcc 编译 C 代码时,输出信息中会有一些不必要的字符(参见下面:â)。

test@dualboot-desktop:~/test/opencv$ make
cc -L/usr/local/lib -I/usr/local/include/opencv2 -lopencv_imgproc -lopencv_highgui -lopencv_video -lopencv_calib3d test1.c -o test_opencv
test1.c: In function âmainâ:
test1.c:13: error: too few arguments to function âcvLoadImageâ
test1.c:21: error: expected â;â before âcvMoveWindowâ
make: *** [test_opencv] Error 1

有时候他们会混淆实际的信息,变得很烦人。

这是什么原因?我的Ubuntu用户设置有问题吗?

我该如何解决这个问题?


那些 â 似乎代表引号。可能是字符编码问题? - Blender
是不是因为错误的区域设置或控制台字体导致的?locale 命令显示了什么?在 man ascii 中能看到引号符号吗? - n. m.
我的语言环境似乎设置为:- LANG=en_GB.UTF-8 LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL= - goldenmean
如果我在Linux控制台或xterm中使用任何UTF-8语言环境,就会出现这种情况。但是在konsole(KDE终端仿真器)中不会发生,并且在C和POSIX语言环境中也不会发生。选择你的毒药。 - n. m.
@n.m - 那我该如何将我的语言环境设置为C或POSIX呢? - goldenmean
2个回答

4
如果您将LC_LANG设置为以UTF8结尾的内容,但您的终端无法处理UTF8(或未进行配置),那么您可能会遇到问题。
要么配置您的终端,要么将LC_LANG设置为en_GB。

谢谢。如果说执行 export LANG=en_GB 那么问题就得到解决了。但是这个更改会在我关闭终端并下次启动新终端时丢失。如何全局更改语言环境/LANG? - goldenmean
1
export LANG=en_GB放入你的.bashrc文件中。 - CS Pei
我在我的Clion控制台中遇到了同样的问题。更改控制台编码解决了它。谢谢。 - BaldDude

0

在Linux Mint下,应用程序“终端”也存在同样的问题。

解决方案: 终端(第四个菜单选项卡),重置(从下面数第二个菜单选项)。 令人烦恼的符号是单引号'。

要使其永久生效,请选择设置(第二个菜单选项卡,最后一个选项),然后选择高级选项,再选择字符集,将其更改为“UTF-8”(在我的情况下是一些奇怪的ISO,甚至不是8859-1)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接