为啥用visual studio2012编程时输入汉字显示为问号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥用visual studio2012编程时输入汉字显示为问号相关的知识,希望对你有一定的参考价值。
用visual studio2012编程时输入汉字显示为问号是设置错误造成的,解决方法为:
1、打开visual studio 2012。
2、选择工具--选项。
3、选择“文本编辑器”。
4、选择语言,例如html。
5、勾选右边的“行号”。
6、点击“确定”按钮即可。
参考技术A 某些 WINDOWS 8.1或 WIN10系统上会出现软件界面编辑框输入汉字变成问号的情况,即汉字无法输入,只能输入英文字母。这是很恼人的问题,很多人为此重装了系统很多次问题也依旧存在。
经多种方法测试,
发现这种问题的形成原因主要是 unicode编码转换问题,一般出现此类问题的电脑上都安装了美式Query键盘,在语言设置选项中 将此 美式键盘
删除后,再运行软件,发现可以正常输入汉字了。
以WIN10为例,具体操作过程为:左下角“开始”图标--设置--时间和语言--区域和语言--右侧语言项中找到
windows显示语言,点击选中--点“选项”按钮--在新窗口中往下看 键盘 列表,看如果有
美式键盘,选中---删除。
以上过程完成后,关闭窗口,打开出问题的软件,输入汉字,应当就会正常。 参考技术B 编码时只能输入英文,汉字的话得用""括起来或者有注释符号注释,其实就是提醒你在这里输入汉字是不对的!原来用过一个什么也不提示的,编译老是有错误,就是不知道为什么,费了老大劲才弄明白!追问
我是在注释里面写不了汉字
追答你用微软拼音试试,也许是输入法的问题,好像vs2012和win8在这里有bug!
追问用过了,还是不行o(╯□╰)o
追答重启,新建一个试试,再不行就没办法了,我刚试了我的,没什么问题啊!
追问我重装一遍试试吧,你是在哪下的呀
本回答被提问者采纳 参考技术C 有可能是环境不支持汉字的输入吧,没有汉字解码器,不认识你输入的东西,所以显示问号吧追问有可能,复制过来的可以显示,输入的就不行,应该怎样解决呢
为啥在使用“评论选择”评论多行选择时,Visual Studio 会诉诸单行评论?
【中文标题】为啥在使用“评论选择”评论多行选择时,Visual Studio 会诉诸单行评论?【英文标题】:Why does Visual Studio resort to single-line comments when commenting a multi-line selection with "Comment Selection"?为什么在使用“评论选择”评论多行选择时,Visual Studio 会诉诸单行评论? 【发布时间】:2015-10-29 19:41:35 【问题描述】:我一直想知道的关于 Visual Studio 中的 注释选择 选项的一些小问题(Ctrl + K、Ctrl + C)。
当我评论这个方法的实现时使用单行评论格式。
private void Foo()
//Bar b = new Bar();
当我在这里注释构造函数的参数时(部分行)使用分隔注释格式。
private void Foo(Qux q)
Bar b = new Bar(/*q*/);
注释掉整个方法会导致:
//private void Foo()
//
// Bar b = new Bar();
//
我觉得分隔注释格式在最后一种情况下更合适,因为规范说:
单行 cmets 延伸到源代码行的末尾。 分隔的 cmets 可以跨越多行。
有谁知道为什么在 Visual Studio 中评论 多行选择 时选择此格式作为默认格式?
【问题讨论】:
不确定文档是否对此给出了任何解释,但我猜这是为了让以后更容易取消注释部分选择。例如,如果您决定只取消注释方法声明和大括号,但希望将单独的语句注释掉。 我同意@BoltClock。注释后,您可以取消注释每一行而不影响其他行。它更容易。 此外,作为一般(非特定语言)规则,这更好,b/c 某些语言(如 Scss)仍然处理多行注释中的代码,您可能想要实际注释(例如文档 cmets),但您在注释 out 代码时可能不想要。 【参考方案1】:多行注释在 C# 中已更改,但未在 VS IDE 中实现,您可能可以创建自己的方式或找到扩展。 C# 现在将 /** */ 用于多行 cmets,并且还有各种关于其工作方式的内置规则。 看这个链接:https://msdn.microsoft.com/en-us/library/5fz4y783.aspx
【讨论】:
【参考方案2】:这样做会有一些问题:
如果任何代码行中有一个*/
,它就不起作用:
private void Foo(Qux q)
//we use "*/image/*" flag here to find only images
Bar b = new Bar("Some wildcard: */image/*");
评论:
/*
private void Foo(Qux q)
//we use "*/image/*" flag here to find only images
Bar b = new Bar("Some wildcard: */image/*");
*/
如果您在已经包含分隔注释的部分上点击“注释选择”,那么尝试用分隔注释包装代码将不起作用:
/*
private void Foo(Qux q)
/* Some multiline
* comment
*/
Bar b = new Bar();
*/
但是很好,我们可以通过插入多个分隔的 cmets 和单行 cmets 的组合来解决这个问题:
/*
private void Foo(Qux q)
/* Some multiline
* comment
*/
// */
/*
Bar b = new Bar();
*/
有点难看,但它有效。如果您遇到该注释代码,您是否能够立即识别代码部分和注释部分是什么?此外,如果你点击“取消注释选择”命令,你会知道你会得到什么吗?
更进一步,想象一下,如果你评论这条评论,它会变得更加丑陋和难以阅读。
如果您在注释掉的文本中有*/
,则解决方法/逃避 cmets 会变得更糟(在我看来):
private void Foo(Qux q)
//we use "*/image/*" flag here to find only images
Bar b = new Bar("Some wildcard: */image/*");
转换为:
/*
private void Foo(Qux q)
//we use "**//*/image/*" flag here to find only images
Bar b = new Bar("Some wildcard: **//*/image/*");
/*
将上面令人困惑的注释代码与现有的单行实现进行比较:
//private void Foo(Qux q)
//
// /* Some multiline
// * comment
// */
// Bar b = new Bar();
//
//private void Foo(Qux q)
//
// //we use "*/image/*" flag here to find only images
// Bar b = new Bar("Some wildcard: */image/*");
//
这样做的好处是代码几乎是 1:1 与之前的样子完全相同,只是以 //
字符为前缀。如果您进一步评论或取消评论,它仍然完全可读并且仍然完全可以预测它会是什么样子。嵌套单行 cmets 或嵌套分隔 cmets 没有任何问题。
也许最后,从 IDE 的角度来看,实现起来真的很简单:“注释选择”意味着在每一行添加一个 //
前缀,“取消注释选择”意味着删除前面的 @987654332 @。无需处理解析代码/cmets,或解析不正确的语法代码/cmets。
【讨论】:
【参考方案3】:据我描述,多行注释是 C 语言的产物,大多数 C# 程序员更喜欢使用 //
样式的注释。
如果在嵌套结构中多次使用多行样式/**/
会变得混乱,因此比单行对应物更容易出错。 See this question 了解更多信息。
【讨论】:
以上是关于为啥用visual studio2012编程时输入汉字显示为问号的主要内容,如果未能解决你的问题,请参考以下文章
为啥 JavaScript Intellisense 在 Visual Studio 2012 中并不总是有效?
visual studio2012中 c语言编译出来的程序怎么暂停啊
为啥 Visual Studio 2012 找不到我的测试?