ubuntu 14.04下使用Sublime Text 3 编译C++文件提示编码错误

其它类软件,非上述版软件
回复
Cc.cc.c
帖子: 7
注册时间: 2012-10-06 13:23
系统: ubuntu14.04+window8

ubuntu 14.04下使用Sublime Text 3 编译C++文件提示编码错误

#1

帖子 Cc.cc.c »

想在ubuntu用sublime text写些小程序(ACM的代码),ubuntu下的eclipse CDT感觉总有这些那些的小毛病,不顺心。
可是当我编译代码时会提示:Decode error - output not utf-8,如果代码中没有cin语句的话一切正常。
好吧,这是个很普遍的问题了。可是问题时我按照google出来的答案,设置
"coding": "cp936",
后,sublime text依旧提示:Decode error - output not cp936
于是我又试了其他编码,如GBK,BIG5,utf-16,cp1252,GB2312等等,依然没有解决问题。
ps:如果改成utf-16和cp1252,sublime 不在提示错误,但是会输出乱码。
希望各位能帮帮我!
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: ubuntu 14.04下使用Sublime Text 3 编译C++文件提示编码错误

#2

帖子 cjxgm »

1. 设置 sublime 的编码为 utf-8
2. 把源代码转成 utf-8 编码的
3. 永远不要用 cp 开头的和 gb 开头的编码
4. 源代码里尽(yan)量(jin)别(shi)用(yong)非 ascii 字符
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
nyfair
帖子: 1067
注册时间: 2007-12-07 12:49
系统: winnux10
来自: Tree New Bee

Re: ubuntu 14.04下使用Sublime Text 3 编译C++文件提示编码错误

#3

帖子 nyfair »

cjxgm 写了:1. 设置 sublime 的编码为 utf-8
2. 把源代码转成 utf-8 编码的
3. 永远不要用 cp 开头的和 gb 开头的编码
4. 源代码里尽(yan)量(jin)别(shi)用(yong)非 ascii 字符
妥协并不能解决根本问题,亚洲人本来就是sublime text的二等公民,这issue都提了无数次甚至有人提供patch。
商业软件给钱才是大爷,一把甩Jon脸上明天就帮你fix
本人在此论坛仅负责吐槽,问题急需解决请支付宝转账5毛至{我的[email protected]},将会竭诚为您服务

linux常见多媒体问题处理指南

1. 视频播放有问题->卸载gstreamer
2. 音频播放有问题->卸载pulseaudio
3. 远程播放有问题->卸载avahi
4. 系统全都有问题->卸载systemd,远离Lennart这傻逼让你从此轻松自在

⇩自由网络⇩
https://github.com/nyfair/freeweb
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: ubuntu 14.04下使用Sublime Text 3 编译C++文件提示编码错误

#4

帖子 eexpress »

你这是要分清字节流带编码输出这2个方面。
字节流输出才不会出错,有啥出啥。
● 鸣学
Cc.cc.c
帖子: 7
注册时间: 2012-10-06 13:23
系统: ubuntu14.04+window8

Re: ubuntu 14.04下使用Sublime Text 3 编译C++文件提示编码错误

#5

帖子 Cc.cc.c »

cjxgm 写了:1. 设置 sublime 的编码为 utf-8
2. 把源代码转成 utf-8 编码的
3. 永远不要用 cp 开头的和 gb 开头的编码
4. 源代码里尽(yan)量(jin)别(shi)用(yong)非 ascii 字符
我的源代码是用UTF-8编码的。并且里面没有用到什么非ASCII字符。
#include<iostream>
using namespace std;

int main(int argc, char const * argv[])
{
char name[255];

//it's ok when I only cout "Hello World"
//cout<<"Hello World"<<endl;
cin>>name;
cout<<name<<endl;
return 0;
}
如果我只输出Hello World,则可以正常编译运行。但如果换成上述代码,则能Ctrl+B编译,Ctrl+Shift+B运行则会报错:[Decode error - output not UTF-8]
请问该怎么办???
回复