韩语句子随机分割

时间:2013-01-22 12:31:35

标签: html css unicode

我在这里面临一个问题:我有一个韩文十进制Unicode的文本,文本显示在4列和多行中(因为它是语言测试的答案)。问题在于,因为每个答案的宽度是20%,所以当句子不适合时,句子会在单词的中间随机分割,而不是在单词之间的空格中。我不知道如何对待这个,因为这个文本是从数据库中自动加载和显示的。

4列中每一列的HTML代码如下:

<table class="courses" border="0" cellpadding="2" cellspacing="2" width="100%" style="font-size:13px;">
  <tbody>
    <td width="20%">
     <p align="center">
       <input name="a[X]" value=1" type="radio">
       <br>
       <?php echo "&#48148;&#49240;&#47732; &#44032;&#51648; &#47560;&#49464;&#50836;" ?> // this comes from a DB, its the unicodes of the korean characters<br>
    </p>
   </td>
</tbody>
</table>

我可以做些什么来解决这个问题,当它不适合时,避免随机分裂,但是当一个句子结束时这样做?如果你在Unicode代码中注意到,你可以看出它之间有一个空格;면&amp;#44032,但是它在任何地方都会中断,对于所有文本都是相同的。

(请注意,没有任何编码问题,韩文字符显示正确。而瑞典语或西班牙语等其他语言也不会出现这种情况。)

修改

这是working example

请注意,在示例中,第一个答案分为最后两个字符,当该单词有五个字符时,应该在之前分割3个字符。

7 个答案:

答案 0 :(得分:5)

根据网络标准的现状,CJK(中文/日文/韩文)文本的换行可能会非常成问题。

你不能用语言无关的方式做太多事情; CSS级别3定义了related attributesline-breakword-break),但我不太确定现代浏览器的支持级别是什么(显然不那么现代的浏览器完全不属于图片)。

答案 1 :(得分:2)

因为韩国人无论如何都可以分开,所以并不重要。请参阅Chosun.com的截图:

enter image description here

这些词在任何地方被切割,看似随意。你不必担心连字符。

答案 2 :(得分:0)

听起来你刚刚遇到white-space的默认行为。您可以查看CSS white-space属性并尝试使用pre

答案 3 :(得分:0)

我面临同样的问题,我认为最好的解决方案是用white-space: nowrap;将每个单词包装在一个范围内。这可以确保在单词中不会有任何换行符。

请参阅此JSFiddle以获取概念验证:http://jsfiddle.net/we7jx08r/。当您更改正文的宽度时,您会注意到换行符始终是正确的。

请参阅http://css-tricks.com/almanac/properties/w/whitespace/了解white-space: nowrap浏览器支持(IE5.5 +,FF1 +,Safari 1 +)。

答案 4 :(得分:0)

您可以尝试我之前工作的解决方案:https://stackoverflow.com/a/46714474/2114953

也就是说,如果你想使用JS来将每个单词包装成span HTML元素然后使用CSS display:inline-block来强制单词在必要时转到新行。

答案 5 :(得分:0)

我一直在寻找这个我正在研究的项目。我认为https://www.w3.org/TR/css-text-3/#line-breaking涵盖了这一点,尤其是“示例5”:

  

另一个例子是,韩语有两种断行方式:在任意两个韩语音节之间(分词:正常),或者像英语一样,主要在空格处(分词:保持全部)。

事实上,Google Chrome(第61版)的默认行为是它打破了音节(我假设我不会说或读韩语)

设置word-break:all,似乎会覆盖此行为并仅将换行符放在空白处。

答案 6 :(得分:0)

word-break: keep-all;为我修复了它。如果用户专门使用韩语查看网站,则添加了此内容。

word-break: keep-all;->“中文/日文/韩文(CJK)文本不应该使用分词。非CJK文本行为与值'normal'相同”(https://www.w3schools.com/cssref/css3_pr_word-break.asp)< / p>