【发布时间】:2013-11-18 22:40:48
【问题描述】:
我有一个字符串,其中有一个我想替换的字符。
该字符的十六进制值为96,我想将该字符替换为十六进制值2D。我试图对字符串进行简单的替换,但它不起作用,因为由于某种原因它无法识别字符。每当我打印出来时,它只会打印一个空白值:
byte testByte = byte.Parse("96", System.Globalization.NumberStyles.HexNumber);
char testChar = Convert.ToChar(testByte); // when I print this its just a blank char
所以,我继续将整个字符串转换为十六进制,但不确定如何将十六进制值字符串转换回字符串。这是我所拥有的:
// using windows 1252 encoding
System.Text.Encoding windows1252Encoding = System.Text.Encoding.GetEncoding(1252);
byte[] myByte = windows1252Encoding.GetBytes(myString);
var myHexString = BitConverter.ToString(myByte);
myHexString = myHexString .Replace("96", "2D");
所以此时我已将十六进制值 96 替换为 2D,但是如何将这个十六进制值字符串转换回字符串?任何帮助都会很棒!
【问题讨论】:
-
“字符的十六进制值为 96”是什么意思?你的意思是它是 U+0096?
-
真的吗?这对我来说听起来很奇怪——这个字符串是从哪里来的?如果您能提供更多背景信息,那将非常有帮助。