为了防止标记我的问题为“重复”here是“答案”类似的问题,这不幸的是没有work.So我有这种情况下,我键入希伯来语文本到TextBox,我需要转换每个键入的字母到标准的字符代码,如那些在ASCII表(十进制)的英文language.Because转换希伯来语字符直接返回完全不同的代码(那些似乎是Unicode )我需要转换成英语希伯来语输入。我尝试了不同的编码类型的希伯来语输入转换:Unicode,UTF8,UTF16,“Windows1255”.I总是得到"?“。
例如,上面提到的问题的可能解决方案是:
public static string convertUTF8ASCII(string initialString)
{
byte[] unicodeBytes = Encoding.Unicode.GetBytes(initialString);
byte[] asciiBytes = Encoding.Convert(Encoding.Unicode, Encoding.ASCII, unicodeBytes);
return Encoding.GetEncoding("Windows-1255").GetString(asciiBytes);
}但它不起作用。
我也尝试过这样的东西:
public static int GetASCIICodeFromUnicode(string letter){
Encoding ascii = Encoding.GetEncoding("Windows-1252");
Encoding unicode = Encoding.GetEncoding("Windows-1255");
byte[] unicodeBytes = unicode.GetBytes(letter);
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
asciiBytes.Length, asciiChars, 0);
string asciiString = new string(asciiChars);
return (int)Convert.ToChar(asciiString);
}也不管用。
发布于 2013-02-18 04:15:44
当字符串出现在.NET中时,要找出键盘发出的内容已经为时已晚。
为了找出被点击的键盘位置,你需要有一个希伯来语到英语位置的映射- Dictionary<char,char>是一个很好的候选数据结构。
https://stackoverflow.com/questions/14925415
复制相似问题