2015-12-24 40 views
1

我正在为Alt代码转换器创建一个字符。我需要知道如何从char获取Alt代码。获取字符的Alt代码

编辑: 如果没有人知道的Alt码是什么,它是Alt键 + + = $。在评论中尝试一下。如果您使用Mac,you can't do it like me。编辑2: 将ASCII字符转换为整数不工作

+0

你想支持什么样的字符?你想支持哪种类型的Alt代码? – CodeCaster

回答

4

对于Windows中的任何GUI应用程序,使用数字键盘输入的代码将根据机器的默认代码页进行解释。在西欧和美洲,可能靠近你的家,像你的名字一样,它将是Windows-1252。但不是在俄罗斯,东欧,中东等。

使用Encoding.Default.GetBytes()可以避免依赖于默认代码页。如果获得的byte []包含0x3f('?')或多个元素,则不能输入。

请小心控制台模式应用程序的麻烦。他们通常使用传统的MS-Dos代码页编码运行,437在你的脖子上,但在世界的另一个地方又是一个非常不同的东西。 Alt-code现在生成一个非常不同的字符,由Console.OutputEncoding确定。你如何解决这个问题在这个问题上并不明显,我想你需要知道什么特定的进程会消耗代码。如果开始觉得这个项目是一个错误,那么你的方向是正确的。

+1

我认为这个项目是一个错误。老实说,我很无聊,为了好玩而开始这项工作,但它开始成为一个让我想要扯掉我的头发的项目! –

0

alt代码只是一个char的十进制数,所以你基本上只需要将char转换为数字。您可以使用转换方法将其转换为int,但您必须调用方法。实际上,你可以简单地将它转换为十进制,并知道该做什么。

static void Main(string[] args) 
    { 
     char input = '$'; 

     decimal output = input; 

     Console.WriteLine(output); 
    } 
+1

@David你确定吗?这将为您提供Unicode代码点。例如,字符'È'具有代码200.然而,Alt代码具有各种类别。要输入'È',您可以使用“Alt + 0200”,但不能使用三位数的Alt代码输入。 – CodeCaster

+0

@CodeCaster刚刚意识到,放在È,给了我200这是╚。这给了我9562等... –

+0

@DavidWheatley这一切都取决于你的范围是什么。如果你需要扩展ascii字符,那么你可能需要一些更聪明的东西,但如果你只想处理基本的127 ascii图表,那么是否有任何一点复杂化? – Keithin8a