英文文章自动换行单词被拆分的探讨

    话说做完web在线考试系统,去客户那里安装部署完毕,俺就随便给他们演示了一遍如何设置组卷策略,如何会随机从题库中生成试卷,每个考生的试卷将都是随机的,最大限度杜绝作*弊(BTW,javaeye换成iteye了,也不能牛到这个单词都屏蔽吧)。安排考试、学生考试、老师监考、考完改卷、成绩管理统计等等。他们已出好word格式的试题库,一天下来就可录入完毕。一路下来很是顺溜,领导拍板,明天学校就用来期中考试。

    本以为应该不会出什么问题,结果第二天事情闹大了,大学英语考试,英语题干把我的div和td之类撑得一趟糊涂,下面的横向滚动条变得很细了,完全没办法看试卷。领导脸黑黑,我是心怦怦跳啊,赶紧现场改,css给div td加上word-wrap:break-word甚至word-break:break-all,给table加上table-layout:fixed,终于不撑了,擦了一把汗。可是,不对啊,定睛一看,靠,是不撑开了,可是右边界处的单词也多数被拆分成2行了,领导又开始皱眉头,faint,祸不单行,福无双至啊。脑袋一片空白,把几个css样式组合来组合去,要么页面被撑开,要么单词被切断,汗水模糊了双眼...领导开始咳嗽了。娘的,不应该啊,超长的恶意构造的单词才可能拆开啊,这些单词都不长,很正常,顶你个肺啊。。。。。

    等等,,这些题目都是他们从word中复制粘贴录入的,难道?莫非?不会吧?找篇阅读理解的题目,复制粘贴进word,查找,特殊符号,不间断空格,一找一个准,肉眼看起来的空格,竟然并不是正常空格,而是不间断空格。娘希匹的,单词和单词之间用不间断空格隔开,当然会被html认为是一个整体的单词了,N个单词由不间断空格连接成一个超长单词,自然会被break掉。为什么世界上还有不间断空格这种鸟玩意呢?为什么从word到html和从html到word,字符不是原样照搬的呢?有空去问下bill gates。

    找到了原因,咋解决呢,后台找一道cloze或者reading comprehension的题目出来,编辑,从textarea框中全选、剪切、重新粘贴回去、保存。前端页面刷新,好了!哈,看来就是这么个鸟事了,松了一口气,告诉客户原因,领导一皱眉:告诉我原因没用,我要的是马上解决!

    吐血啊,几千道这种题目,每个在后台编辑,全选、剪切、粘贴、保存,等我干完,天都黑了。唉,少壮不努力,,长大做IT啊....怎个惨字了得!

    假假的咱也是做IT的噻,怎么能真的傻乎乎手动去搞。写个sql搞定它,不就是不间断空格吗,不就是ascii值为160的那个鸟蛋吗,replace成真正的空格,不就OK了,说干就干。

update ed_question set title = replace(title, char(160) ,' ');

 

运行!啥?影响是0行,丢你老母,!@#$%^&*......help!!!嗯,终于看到help了,char(N,.... using characterset),嗯,先using下utf8

update ed_question set title = replace(title, char(160 using utf8) ,' ');

运行!啥?又不行?靠,换成gbk看看

update ed_question set title = replace(title, char(160 using gbk) ,' ');

运行!啥?又不行?日,换成latin1看看

update ed_question set title = replace(title, char(160 using latin1) ,' ');

运行!啥?行了!

    同学们,请刷新一下你们的考试页面!

你可能感兴趣的:(J2EE)