日期:2014-05-16 浏览次数:20453 次
27 Apr 2010
?
问题是:当我把mdb 文件复制到 xls文件,然后再复制到txt文件后,出现了黑方块。
昨晚试了一下,如果你只想删掉所有的黑块,只要用 wordpad.exe(写字板)把TXT文件打开一下再保存就好了
?
?
以下方法要尝试一下:
?
用UltraEdit打开文本文件,然后使用文件->另存为->换行符[选择为DOS换行符-CR/LF]->保存->确认替换即可
?
在正则表达式中,有一个\n是newline的意思,又有一个\r是carriage return的意思。
??? 在处理String或者console输出的时候,无论带上哪个都能换行。但是偏偏Windows中,哪个都不是标准的换行,只有合起来的\r\n才是换行,意思是\r敲个回车,表明这行结束了,光标回到头去,然后再\n下移一行来个新行。
??? 简单点说,就是\r\n(对应ASCII码为13和10,也就是0x0d 0x0a)是Windows的标准。而\n(0x0a)是Unix/Linux的标准。当段落后只有一个\n时,记事本打开时就只能显示一个黑色的小块在相应的位置了,而不是我们预想的回车换行。
搞定这种问题现在知道的有二个办法:
一、编写一小段C代码,将ASCII-10改为ASCII-(13+10),再使用记事本打开,问题搞定。
二、最简单的办法,如果你只想删掉所有的黑块,保留住换行来看电子书,用 wordpad.exe(写字板)把TXT文件打开一下再保存就好了,O(∩_∩)O哈哈~
?
?今天试验android通过http协议发送请求,然后将服务器响应显示在EditText上的时候,发现后面总是多了个黑方块。(服务器端是tomcat+servlet,部署在windows机上).
???? 刚开始一直没想明白,后来意识到android是linux的分支,那它的换行符是"\n",而服务器端是部署在win上的,换行符是“\r\n”,这就找到了问题的原因:android只读取一个“\n”做为它的换行符,剩下多余的“\r”就成了多余的字符了。
???? 所以在win下做主机的话,要么换行符不要在响应中添加,否则就做如下简单替换:
??? String response = .........(假设已经将响应转换为字符串赋值给变量response)
??? response = response.replace("\r\n","\n");
??? 这样,response字符串就正常的显示在android的文本控件上了。
try one try first. haha