【问题标题】:Table loaded from csv in asciidoc have weird characters output从 asciidoc 中的 csv 加载的表有奇怪的字符输出
【发布时间】:2016-02-12 12:15:40
【问题描述】:

我想使用 asciidoc 生成一个表格。我使用 asciidocfx。我创建了 2 个相同的表,一个加载外部 csv 文件,而另一个是在 asciidoc 中创建的简单表。问题是,加载的 csv 文件中的表会为这些字符“...”生成一个 �。使用 asciidoc 创建的表不会为“...”生成该符号

这是正文

.CSV table
[format="csv",options="header"]
|===================================================
include::table.csv[]
|===================================================

.Asciidoc table
[options="header"]
|====
|Hello | World

| Hi
| Atlas...

| Hi
| Atlas..

| Hi
| Atlas.

|====

table.csv的内容

Hello ,World
Hi,Atlas...
Hi,Atlas..
Hi,Atlas.

html 输出的 sn-p。

<div class="sectionbody">
<table class="tableblock frame-all grid-all spread data-line-14">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Hello</th>
<th class="tableblock halign-left valign-top">World</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Atlas�</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Atlas..</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Atlas.</p></td>
</tr>
</tbody>
</table>
<table class="tableblock frame-all grid-all spread data-line-20">
<caption class="title">Table 1. My table</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Hello</th>
<th class="tableblock halign-left valign-top">World</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Atlas…​</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Atlas..</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Atlas.</p></td>
</tr>
</tbody>
</table>
</div>

【问题讨论】:

  • 您确定您的 csv 包含纯 ASCII 而不是 utf-8 chars 之类的东西吗? “...”应该是一个用 ASCII 以外的东西编码的唯一字符。尝试使用十六进制编辑器打开 CSV 文件,检查它是 3 个点还是多字节字符。
  • 你是对的。 Excel 导出 csv 文件并创建 that 字符而不是“...”。我已经在记事本中编辑了它。浪费时间认为这是 asciidoc 问题。谢谢。顺便说一句,您能否将其发布为答案,以便我将其标记为答案?

标签: asciidoc asciidoctor


【解决方案1】:

"..." 应该是单个字符而不是 3 个点。 所以你有一个多字节字符,例如 Utf-8 或其他不是 ASCII 的字符集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    相关资源
    最近更新 更多