❶ visual studio怎么修改为utf-8
UTF-8 属于unicode家族,主要应用于文本交换(与ASCII表面兼容的网络传输、文件存储...),是一个处理效率较低的编码,OS API一般都没有支持(可能没有必要),所以把整个程序构造为UTF-8编码,应该会使问题复杂起来.
通常的做法是需要的时候,进行编码转换!
❷ C语言控制台程序,中文输出变成乱码,怎么解决
这里涉及到一个字符在源代码(文本)中,编译好的二进制文件中,以及最后控制台输出编码形式的区别.
首先,要明确一点:C(语言/程序)并不理解ANSI,UTF-8以及任何其他编码.它只知道处理你给它的字符的二进制表示.
在简体中文Windows下,默认的文本保存编码是ANSI(即GBK);Linux下根据系统locale设定,一般应该是(zh_CN.UTF-8).(以下基于简体中文Windows)
1)对于源文件中保存的"中文"这个字符串,VS2008看到的就是"0xd6d0"和"0xcec4"的形式(默认ANSI编码得到).但编译器才不管是不是GBK神马的,它就管那串数字.
区别,MinGW看到的是"0xe4b8ad"和"0xe69687"(gcc默认UTF-8).注意,用MinGW编译的源文件中有中文宽字符必须保存为UTF-8编码.
2)然后,在二进制文件中的存储形式,对传统的字符串(char str[] = "中文";),编译器什么都不做,直接把那串数字(如"0xd6d0","0xcec4")搬过去塞进二进制文件.
但对于宽字符串(wchar_t wstr[] = L"中文";),编译器会将其做转换,转换成Unicode编码格式(在Windows是UTF-16,而Linux下是UTF-32).如"中文"的16位Unicode是"0x4e2d"和"0x6587",然后把这串转换后的数字("0x4e2d","0x6587")塞进二进制文件中.(这里VS和MinGW做的没有区别)
这里有点需要注意,编译器必须知道你的源文件保存的编码!如VS默认是ANSI编码,如果你用UTF-8保存.c源文件去用VS打开看一定是乱码.同理如果你用mingw编译ANSI编码保存的源文件,也会出错!(但可以修改编译选项解决,见文章末尾) 在本文这里这个原因其实很好理解,因为编译器需要知道,如果它要将一个保存在文件中的字符转成宽字符时,是从什么编码转到Unicode.(可见上述VS是GBK->Unicode,而MinGW是UTF-8->Unicode)
❸ 这是VS2010编译器优化吗怎么改
这个问题比较深, 所以只有哥来回答你了。
你说的问题在VS2008上也是相同的表现,这个是因为微软的库实现不是直接实现在你call的generate_n这个函数上的,而是有好几重转调,所以造成你即使对第一重调用的 模板函数用 引用去实例化,由于后面转调的函数都是使用值去实例化的,所以实际你得到的运行效果还是值语义的。
比如你call 函数 func1<A&>(), 但是由于func1<A&>() 调用了func2<A>(), 又继续调用了func3<A>(), 最后func3里操作的其实是一个值拷贝,所以影响不到外面的引用的对象。
哥去 微软报了个bug,里面写得比较细,你可以仔细看,http://connect.microsoft.com/VisualStudio/feedback/details/676282/vs-2010-sp1-doesnt-conform-to-the-c-standard-library-a-tutorial-and-reference
❹ 在VS2010中怎么把文件保存时候默认的格式改为为UTF-8格式
各种软件,在它的保护选项内都可以设置默认的格式,你只要找到这个选项,选中后点应用或确定就可以了,有的在保存菜单内,有的在工具选项内,也有的在编辑菜单下可以进入选项。
❺ VS编译器!
这个和c++没什么关系,所有c代码都可以直接移植,c++向下兼容c,代码不能用估计是编译器支持的c语言标准问题.
比如c99或者c11标准,如果是scanf不能用 需要改成s_scanf这样的错误,那就是c标准的问题了,
或者你编译器要是vs2010以上,十有八九就是编译器的问题了,修改你的函数吧,新的安全规则比旧的好,学新的没坏处
❻ vs 2013编译器的问题,编译的c语言,为什么出错了,可以帮我修改一下么
使用了不安全的函数scanf,有两种解决方法,第一:使用scanf_s函数代替;第二:禁用该提示,具体,右击工程 - 属性 - 配置属性 - C/C++ - 命令行,命令行增加 /D _CRT_SECURE_NO_WARNINGS
至于为什么是不安全的函数,scanf()在读取时不检查边界,所以可能会造成内存访问越界,例如分配了5字节的空间但是读入了10字节。为了解决这个安全问题,从vc++2005开始,提供scanf_s()函数,增加了一个指示长度的参数,如:char d[20];scanf_s("%s",d,20);
楼上有大神给出了c++的做法,也是不错哦,不用考虑不安全函数问题了。
❼ vs代码编辑器怎么设置中文,网上不说怎么保存ch-CN改不了。
1 Ctrl+Shift+p输入“configure display language”点击确定
2 修改locale.json文件下的属性“locale”为“zh-CN”
改不了的看看你用管理员打开试试
❽ 怎么将VS2013的默认编码改为UTF8
修改成UTF8的方法:
1、windows->Preferences...打开"首选项"对话框, 左侧导航树,导航到general->Workspace,右侧 Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8。
2、 windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Content Types,右侧Context Types树,点开Text,选择java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。其他java应用开发相关的文件 如:properties、XML等已经由MyEclipse缺省指定,分别为ISO8859-1,UTF-8,如开发中确需改变编码格式则可以在此指 定。
3、经过上述两步,新建java文件即为UTF-8编码,MyEclipse编译、运行、调试都没问题,但是做RCP应用的Proct输 出时、或者插件输出时,则总是出错,要么不能编译通过(输出时要重新compile)、要么输出的插件运行时中文显示乱码。此时需要再RCP应用、或插件 Plugin工程的build.properties中增加一行,javacDefaultEncoding.. = UTF-8。让输出时编译知道java源文件时UTF-8编码。这个设置需要保证所有的java源文件时UTF-8编码格式,如果不全是,可以参考 MyEclipse帮中(Plug-in Development Environment Guide > Reference > Feature and Plug-in Build configuration),建议全部java源文件是UTF-8编码。
❾ 怎么修改vs2015 的编码格式,解决中文乱码
两个方法选一:
1.运行注册表工具regedit.exe,搜索所有的svgasys.fon,大概有两到三个,将它们全部改为vgasys.fon,重新启动机器后问题解决。