【100分求解】谁知道0D0A和0A是什么区别吗?如何转?

pepsikc 2006-03-02 10:02:25
我从上一个页面的文本框里getParameter得到的String,getBytes后,发现所有的回车都是用0D0A表示的,但是我们的项目要求只能是0A。请问jdk提不提供什么方法可以将得到的文本内容中的回车以0A来表示呢?
...全文
1168 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pepsikc 2006-03-02
  • 打赏
  • 举报
回复
多谢楼上!结帖~
CalvinKyle 2006-03-02
  • 打赏
  • 举报
回复
/**
* 根据输入的字符串,和每个byte数组的总长,讲字符串转换为byte数组,若转换出来的长度不足总长,则补byte的0
* 回车转换成非Dos格式,即0A,而不是0D0A
* @param strVal String
* @param allBL int
* @return byte[]
*/
public static byte[] getBytesByStrIgnor0D(String strVal, int allBL)
{
byte[] rByte = new byte[allBL];

byte[] temp = strVal.getBytes();
//不足补0
for(int i = 0, j = 0; i < allBL; i++)
{
if(i < temp.length)
{
if(temp[i] == 13 && temp[i + 1] == 10) // 0D0A
{
rByte[j++] = temp[++i]; // only get 0A,ignor 0D
}
else
{
rByte[j++] = temp[i];
}
}
else
{
rByte[i] = 0;
}
}
return rByte;
}
CalvinKyle 2006-03-02
  • 打赏
  • 举报
回复
当你敲回车的时候是输入0D0A还是单0A是操作系统决定的,BIOS不过告诉操作系统“有人按了回车键”而已,Windows将它认做0D0A,Unix只需要0A,而Mac认做0D。

至于你提到的如何得,据我所知jdk似乎没有吧,不过自己写个方法过滤一下,也不太麻烦

81,092

社区成员

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

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