您的位置:首页 > 数据库 > MySQL

mysql servlet调用插入带有格式的大文本换行符无效的问题

2013-11-07 10:12 246 查看
做一个图书管理系统,需要将图书目录存在服务器的数据库中,然后再安卓客户端中调用数据并显示,一开始直接将大文本存成Varchar格式,发现这个格式存的文本似乎都没有格式,换行符都没有作用。后来查资料发现应该存成text格式。但是存成text格式以后换行符依然无效,组后通过sql指令发现换行符被默认存成\r,但是读取的时候,去被显示成立回车。

有查阅资料发现,mysql中,换行符应该是<br>。如果想让存在mysql中的文本有格式,必须将原来文本的\r转换成<br>

具体方法是:

1.现将格式化好的文本存入数据库中

2.利用指令update book SET book_press = REPLACE(book_press, '\r', '<br>');将文本中的\r换成<br>。

用了该方法以后,发现在浏览器中调用换行符有效了,但是在手机客户端上调用显示的时候却直接显示<br>符号,而且也不能换行。但是值得注意的是这条指令同样可以替换数据库文本中的其他指令,是一条非常有用的指令。

我又开始怀疑是不是安卓端的文本显示框的问题,经过一系列恶心的测试终于找到了问题,安卓端的换行符实际是是\n。servlet端取到数据库中的数据里面的回车符是没有问题的,但是传送到安卓客户端中的数据就没有了回车符,不知道是在哪一步回车符不见了,但是还是找到了解决方法。

就是在servlet端把\n转化为@,然后再在客户端显示前把它改回来。

具体方法如下:

1.servlet端取到数据库中的数据里面的字符串以后加一个指令

result = result1.replace('\n','@');(result1 是原字符串)

2.在安卓端,把字符串传给文本显示框之前加条指令

result1= result.replace('\n','@');(result 是原字符串)

问题终于解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: