java或者C# 字符串 转byte[]

chcchb 2012-12-22 09:27:39
如题

主要是 字符串里的字符不是普通的编码,如 UTF-8, GBK, UNICODE等

所以各位大大 回帖时请自动过滤
java:
"我們".getBytes()  "我們".getBytes("UTF-8")


c#:
Encoding.Default.GetBytes("我們");  Encoding.UTF8.GetBytes("我們");


这些字符串是从文件里读入的.
我本来是打算一个一个字节读取,但是不知道当前字节是单字节的,还是属于某个文字中的一部分,所以换成每行每行读取,然后在读每个字符.

各位大大 ,如果有好的建议,也请介绍下
...全文
350 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
forgetsam 2012-12-23
  • 打赏
  • 举报
回复
1 没有什么“普通”“不普通”的编码,只有已知和未知的编码。只要你知道它是什么编码就行。 2 知道编码用Writer 和 Reader直接转化。
game4daniel 2012-12-23
  • 打赏
  • 举报
回复
引用 6 楼 forgetsam 的回复:
引用 4 楼 chcchb 的回复:2楼的方法后面的big5或者utf-8等参数 要系统支持的才有效 前几天用过这个带指定编码来读,结果本地不支持客户指定的编码... 什么叫"客户指定的编码"? 1 客户自己创造的一套字符集编码+字库。 那你让客户自己写程序好了,他肯定比你牛。 2 我本地操作系统不识别,客户的操作系统能识别的生僻编码 ……
嗯,同意forgetsam。 to 楼主:sum.io这个包下面有JDK所支持的编码。如果你的编码属于会报错的那种,你只能按forgetsam的方法来了
game4daniel 2012-12-23
  • 打赏
  • 举报
回复
一:如果你的操作不一定需要每个字符是啥,比如复制,直接用InputStream读,然后写到OutputStream 二:你需要知道每个字符。首先,你肯定知道文件的编码。

public static void main(String[] args) throws Exception {
        // 把文件按big5编码来读
        BufferedReader br = new BufferedReader(new InputStreamReader(
                new FileInputStream("a.txt"), "big5"));
        br.read();//读取一个字符
        br.readLine();// 读行
    }
forgetsam 2012-12-23
  • 打赏
  • 举报
回复
引用 4 楼 chcchb 的回复:
2楼的方法后面的big5或者utf-8等参数 要系统支持的才有效 前几天用过这个带指定编码来读,结果本地不支持客户指定的编码...
什么叫"客户指定的编码"? 1 客户自己创造的一套字符集编码+字库。 那你让客户自己写程序好了,他肯定比你牛。 2 我本地操作系统不识别,客户的操作系统能识别的生僻编码 你在本地扩展安装一下就完事了。
huntor 2012-12-23
  • 打赏
  • 举报
回复
不知道编码怎么从byte[]转到String?
byte[] data = Files.readAllByetes(Paths.get("D:/Temp","examples.txt"));
chcchb 2012-12-23
  • 打赏
  • 举报
回复
2楼的方法后面的big5或者utf-8等参数 要系统支持的才有效 前几天用过这个带指定编码来读,结果本地不支持客户指定的编码...

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧