社区
WPF/Silverlight
帖子详情
怎样将Byte[]转换成字符串
海涵德
2012-06-04 09:13:58
有人给出的办法在silverlight中无效,还有什么办法?
...全文
620
16
打赏
收藏
怎样将Byte[]转换成字符串
有人给出的办法在silverlight中无效,还有什么办法?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yn_jiang
2014-07-24
打赏
举报
回复
海涵德
2012-06-21
打赏
举报
回复
至今还没有解决。
火雲邪神
2012-06-15
打赏
举报
回复
.tostring()
E次奥
2012-06-15
打赏
举报
回复
我不信文件流都解决不了你的问题!
海涵德
2012-06-15
打赏
举报
回复
确实没有人给出解决办法,多是纸上谈兵或者用WinForm中的代码蒙事,在silverlight里确实还没有解决办法,我不需要想法,我只要代码,要用代码说话。
海涵德
2012-06-13
打赏
举报
回复
楼上的代码在silverlight中调试过吗?
这种方法我已经试用过了,结果是一样的。
我调试的代码如下:
FileStream fs = fileinfo.OpenRead();
// StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("utf-8"), true);
string s="";
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, bytes.Length);
s = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
fs.Close();
//Encoding fileEncoding = TxtFileEncoding.GetEncoding(fs, Encoding.GetEncoding("utf-8"));//取得这txt文件的编码
//Console.WriteLine("这个文本文件的编码为:" + fileEncoding.EncodingName);
// fs.Read(line, 0, line.Length);
// s = Encoding.GetEncoding("system").GetString(line, 0, line.Length);//gb2312
// s = Encoding.UTF8.GetString(line, 0, line.Length);
// s = Encoding.Unicode.GetString(line, 0, line.Length);
注释中是调试过的方法,都没有解决问题。
Fan_zhigao
2012-06-13
打赏
举报
回复
{
string fileContents = string.Empty;
//读取文件字节流(不能用OpenText,否则默认以UTF-8方式读取)
using(FileStream textStream = ofdUpFile.File.OpenRead())
{
//创建字节流数组
byte[] bytes = new byte[textStream.Length];
//读取相关数据
textStream.Read(bytes, 0, Convert.ToInt32(textStream.Length));
fileContents = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
海涵德
2012-06-06
打赏
举报
回复
private void do_file_readtext(string file_name)
{
string line;
byte[] bytes;
FileInfo fi = new FileInfo(file_name);
bytes = new byte[fi.Length];
Stream s = fi.OpenRead();
s.Read(bytes ,0,(int )fi.Length );
string line1 = System.Text.Encoding.GetEncoding(936).GetString(bytes);
s.Seek( 0, SeekOrigin.Begin);
string line2 = System.Text.Encoding.GetEncoding("gb2312").GetString(bytes);
s.Seek(0, SeekOrigin.Begin);
string line3 = System.Text.Encoding.Default.GetString(bytes);
//line = System.Text.Encoding.Unicode.GetString(bytes);
s.Close();
StreamReader sr = fi.OpenText();
line = sr.ReadLine();
sr.Close();
}
上面这段代码在Winform下调是都没有问题,只是下面这一段的OpenText()是非要用utf8编码读取文件得到的
line就乱码。
StreamReader sr = fi.OpenText();
line = sr.ReadLine();
sr.Close();
能否改变OpenText()的编码?,只要改成default就可以。
海涵德
2012-06-06
打赏
举报
回复
我发现utf8转换字符串是把汉字都转换成了65535,感觉他识别不了就用16位最大整数代替了。
海涵德
2012-06-06
打赏
举报
回复
我不是自己Encoding,而是读取一个其他文件中的汉字,经过Encoding.utf8后发现汉字转换为字节时的值都是65535,所以
代码这样写的:
streamread s=fi.opentext();
string line0=s.readline();
//
// 此时 line0 读过来,已经乱码,所以我想这么做
//
byte[] bs=system.text.encoding("utf-8").getbytes(line0);
// bs中的汉字值都为最大整数65535
string line1=system.text.encoding("utf-8").getstring(bs);
如果这样写代码:
stream s=fi.openread();
byte[] bs=new byte[fi.length];
s.read(bs,0,fi.length);
//
// 此时可以看到bs中汉字编码值还是正确的,每两个字节都是大于128小于65535的值,应该是原编码
//
string line1=system.text.encoding("utf-8").getstring(bs);
line1 是乱码的。
我发现utf8转换字符串是把汉字都转换成了65535,感觉他是别不了就用16位整数代替了。
以上为了简介忽略了大小写,估计诸位能够看明白。
以专业开发人员为伍
2012-06-05
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
Encoding.Default
Encoding.ASCII
等在silverlight中都不存在,只有
Encoding.UTF8
Encoding.Unicode
[/Quote]
至少后两种对于我来说够用了。
如果你需要编码,可以自己写。找个关于编码的文档,看看各种编码byte[]对char的转换规则是什么,处理起来还是不难。
幸福小6
2012-06-05
打赏
举报
回复
有试过Encoding.Default.GetString( byte[] byte )吗?
海涵德
2012-06-05
打赏
举报
回复
Encoding.Default
Encoding.ASCII
等在silverlight中都不存在,只有
Encoding.UTF8
Encoding.Unicode
海涵德
2012-06-05
打赏
举报
回复
在早期的代码可以直接使用ascii转换双字节汉字编码,有了unicode后反倒更纠结。
海涵德
2012-06-05
打赏
举报
回复
没用。
jv9
2012-06-05
打赏
举报
回复
你试过强制类型转换了么?应该可以强制转换成String类型。
android
byte
字节数组转换十六进制
字符串
android
byte
字节数组转换十六进制
字符串
一个demo。里面有几种转换测试代码。我的博客地址:http://blog.csdn.net/qq_16064871。
python3.x 将
byte
转成
字符串
的方法
如下所示: result = str(要转换的变量名, encoding='utf-8') 例如: result = str(request, encoding='utf-8') 以上这篇python3.x 将
byte
转成
字符串
的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:Python 十六进制整数与ASCii编码
字符串
相互转换方法Python 16进制与中文相互转换的实现方法python实现各进制转换的总结大全python 把列表转化为
字符串
的方法python3.4 将16
php
字符串
与
byte
字节数组转化类.zip
介绍php
字符串
与
byte
字节数组转化类,转换一个String
字符串
为
byte
数组,将字节数组转化为String类型的数据,转换一个int为
byte
数组,从字节数组中指定的位置读取一个Integer类型的数据,转换一个shor
字符串
为
byte
数组,从字节数组中指定的位置读取一个Short类型的数据。
一个
byte
数组与
字符串
转化类库
这个类库可以实现 1.转换一个String
字符串
为
byte
数组 2.将字节数组转化为String类型的数据 3.转换一个int为
byte
数组 4.从字节数组中指定的位置读取一个Integer类型的数据 5.转换一个shor
字符串
为
byte
数组 6.从字节数组中指定的位置读取一个Short类型的数据
String(含Hex)与
Byte
数组互相转换[代码]
1.
字符串
(String)与
Byte
[] 的互相转换. 2.Hex(String形式)与
Byte
[] 的互相转换.
WPF/Silverlight
8,756
社区成员
12,030
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章