UTF8.GetString带特殊字符(0xd 0xa)
问题描述:
我正在使用UTF8.GetString从入站流读取上下文,将其存储到数据库varchar类型的列,但它似乎我缺少特殊字符0xd 0xa。我该如何解决这个问题?UTF8.GetString带特殊字符(0xd 0xa)
感谢您的帮助!
编辑:入站流在字节表示
答
这不是一个单个字符 - 这是两个字符,“回车” U + 000D和“换行” U + 000A ...和UTF-8解码器当然可以处理它们。示例代码:
using System;
using System.Text;
class Test
{
static void Main()
{
byte[] bytes = { 0x41, 0xd, 0xa, 0x42 };
string text = Encoding.UTF8.GetString(bytes);
Console.WriteLine(text == "A\r\nB");
}
}
你确定你的数据库没有剥离字符吗?或者如果你有XML输入,也许这是剥离它,相信它是可以忽略的空白?
你不能用nvarchar来代替吗? – 2011-01-31 17:07:43
我假设你正在使用`Encoding.UTF8.GetString(byte [],int,int)`从输入字节数组中获取字符串。您确定0x0d和0x0a字符是否包含在您要转换的字节范围内?如果它们在一行的末尾,那么在阅读时通常会将它们从字符串中删除。 – 2011-01-31 17:35:29