`
liuhanjun
  • 浏览: 47780 次
  • 性别: Icon_minigender_1
  • 来自: 海口
社区版块
存档分类
最新评论

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

    博客分类:
  • J2EE
阅读更多

    话说做完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) ,' ');

运行!啥?行了!

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

分享到:
评论

相关推荐

    字体超过div范围自动换行

    标题“字体超过div范围自动换行”及描述“字体超过div范围自动换行”,明确指出了一种解决方案——利用CSS属性使文本在超出`div`容器范围时自动换行。下面将深入探讨这一主题,包括相关CSS属性的使用方法、应用场景...

    android在SurfaceView游戏中字体自动换行

    实现字体自动换行的关键在于计算每个字符或单词的宽度,并基于这些宽度来决定何时进行换行。具体步骤如下: 1. **初始化参数**: - `str`:待显示的字符串。 - `paint`:用于绘制文本的画笔对象。 - `display...

    对于div,p等块级元素css如何实现自动换行

    word-wrap属性在IE浏览器中有专门的支持,其值可以设置为break-word,用来确保长单词或URL也能被适当地拆分并换行。而word-break属性则可以设置为break-all,这会在任意字符之间断行,适用于需要在任何字符间进行断...

    CSS实现强制不换行、自动换行、强制换行的css代码

    然而,这样做可能会导致英文单词在非空格处被拆分,影响可读性。为避免影响行内元素,可以将这些元素转换为块级元素,如: ```css p { word-break: break-all; } span { display: block; } ``` 这样,每个`...

    java 的换行原则

    下面我们将详细探讨Java的换行原则,这不仅是Java编译规范的重要组成部分,也是提升代码质量的关键。 #### Java源代码的换行标准 Java源代码的换行主要遵循以下原则: 1. **行长度限制**:通常建议每行代码不超过...

    CSS强制性换行的方法区别详解

    这意味着如果一个英文单词过长,且当前行宽度不足以容纳整个单词,那么这个单词会被强制在任何位置断开,分散到下一行。例如,单词 "congratulation" 可能会被拆分为 "conra" 和 "tulation" 分别放在两行。这种方法...

    浅析word-break work-wrap的区别

    对比 `word-break: break-all` 和 `word-wrap: break-word` 的效果,我们可以发现,`word-break: break-all` 强制在单词内部的任何位置换行,可能导致一个单词被拆分成多个部分分布在不同行;而 `word-wrap: break-...

    CSS实现文字环绕图片效果

    因为浏览器默认会将英文单词视为一个整体,当空间不足以容纳整个单词时,浏览器不会将其拆分。这可能导致文字超出容器边界,而不是在图片旁边正确地换行。 为了解决这个问题,我们可以使用CSS的`word-break`属性。`...

    CSS word-wrap同word-break的区别

    - `break-all`:允许在任何字符后换行,不仅仅是亚洲语言,这意味着英文单词也会在任意位置断开进行换行。这个值特别适合于需要在单词间任意换行的场景,比如一些包含了英文文本的亚洲语言内容。 - `keep-all`:不...

    DW中文本折行

    设置为`break-all`可以强制在每个中文字符后断行,而`keep-all`则保持全角字符不被拆分。 2. `white-space`:此属性控制元素内的空白处理。`normal`是默认值,允许自动折行;`nowrap`则不允许折行,超出的部分会溢出...

    python编程开发之textwrap文本样式处理技巧

    如果一个单词本身就超过了`width`,那么它会被作为一个单独的元素输出。 其次,`fill()`方法是`wrap()`的扩展,它将输入的文本按照`width`长度拆分后,返回一个连续的、折行后的字符串,而不是一个字符串序列。这在...

    jquery实现的一个文章自定义分段显示功能

    在本文中,我们将探讨如何使用jQuery实现一个文章自定义分段显示的功能,以及与之相关的jQuery操作DOM的方法。首先,让我们分析给出的代码片段。 在HTML部分,我们看到一个简单的输入框(`...

    word2003经典入门到精通教程

    介绍如何设置表格单元格的自动调整功能,使文字能够根据单元格大小自动换行,避免溢出或截断。 #### 在Word中高效率应用表格的选择录入功能 教授如何使用表格选择和录入功能来提高数据输入的效率,包括快速定位...

    Android开发规范文档完整版

    - 如果方法过长,则应考虑将其拆分为多个较小的方法,以提高可读性和可维护性。 #### 4.6 枚举值的使用 - 枚举值应该使用大写字母,单词间使用下划线分隔,例如 `EM_ENUM_VALUE`。 - 枚举常量应该在枚举类的开头...

    神奇的PHP String(深入剖析)

    4. `str_word_count()`:计算字符串中的单词数量。 5. `strip_tags()`:去除HTML、XML及PHP标签,提取纯文本。 6. `stripos()`:查找字符串在另一个字符串中首次出现的位置,不区分大小写。 7. `strlen()`:返回字符...

    易语言排版打印例程

    易语言排版打印例程中,分行算法会考虑避免单词被拆分,并确保在换行时不会出现单个词语单独占据一行的情况。 创建新的打印页面功能允许开发者自定义页面的布局,包括但不限于设置纸张大小、方向等参数。这一功能为...

    阿里巴巴Android开发手册PDF

    - **命名规范**:手册中详细规定了类名、方法名、变量名等的命名规则,强调采用有意义的英文单词或词组,遵循驼峰命名法,以确保代码的可读性。 - **注释规范**:鼓励开发者在代码中添加清晰的注释,解释代码的...

    Word快捷键大全.pdf

    - Ctrl+Shift+Spacebar(不间断空格):插入不间断空格,使单词在换行时不会被拆分。 - Ctrl+Shift++(添加或移除超链接):为选中的文字快速添加超链接或移除现有链接。 导航与定位类: - Ctrl+Home(移动到文档...

    eforsuzPython:kelimeleri模式şeklindeyazdırmave okuma

    例如,每打印N个单词换行,或者交错打印奇数和偶数索引的单词。 4. **读取文件**: - Python提供了多种方式读取文件,最常见的是使用内置的`open()`函数。例如,`with open('file.txt', 'r') as file:`创建一个...

Global site tag (gtag.js) - Google Analytics