2

我的表名是pinkƒpink1,当我进行选择时

   (sql/with-query-results res
     "select pinkƒpink1.growth555 as pinkƒpink1$growth555, pinkƒpink1.status_id as pinkƒpink1$status_id, pinkƒpink1.status_position as pinkƒpink1$status_position, pinkƒpink1.i1l0 as pinkƒpink1$i1l0, pinkƒpink1.f∆ as pinkƒpink1$f∆, pinkƒpink1.env_id as pinkƒpink1$env_id, pinkƒpink1.position as pinkƒpink1$position, pinkƒpink1.created_at as pinkƒpink1$created_at, pinkƒpink1.locked as pinkƒpink1$locked, pinkƒpink1.updated_at as pinkƒpink1$updated_at, pinkƒpink1.id as pinkƒpink1$id from pinkƒpink1 as pinkƒpink1 where pinkƒpink1.id in (select * from (select pinkƒpink1.id from pinkƒpink1 order by pinkƒpink1.position asc) as _conditions_) order by pinkƒpink1.position asc"
     (doall res))

结果全乱了:

{:pink�pink1$id 1, :pink�pink1$status-position 0, :pink�pink1$updated-at #inst "2013-06-27T21:58:01.711000000-00:00", :pink�pink1$status-id 1, :pink�pink1$growth555 1.3333388822M, :pink�pink1$env-id 1, :pink�pink1$i1l0 YELLL, :pink�pink1$position 0, :pink�pink1$created-at #inst "2013-06-27T21:58:01.712084000-00:00", :pink�pink1$f∆ 55555, :pink�pink1$locked false}

知道发生了什么吗?我在 OSX 10.8.2 上。

4

2 回答 2

1

当 repl 将关键字打印到屏幕上时,它似乎很可能会破坏名称。也许您可以尝试将结果吐出到文件中,然后在您信任的具有 unicode 支持的编辑器中打开它。

您也可以尝试设置:keywordize-keys false查询以防止这种转换

于 2013-06-27T23:26:43.027 回答
0

这是编码不匹配或解码已解码/编码已编码数据的典型标志。

当您处理编码问题时,您确实必须逐步跟踪正在发生的事情。恐怕这真的很烦人。您需要识别完成编码转换的每个点,并找到破坏数据或误解数据的点。

这可能涉及编写驱动程序测试用例,使用替代客户端来现场检查数据等。

另一种可能性是结果很好,但是您用来显示结果的工具没有合适的字体;它缺少字符的字形,因此它们显示为占位符。

您应该检查结果中不正确字符的字符代码- 实际的二进制数据。看看它们是否对应正确的代码。如果他们不这样做,那么他们变成的代码可能是关于您遇到的编码问题的有力线索。

最常见的问题是将已经是 utf-8 的文本编码为另一种编码,如 iso-8859-1(“latin-1”),但这会产生此问题所没有的特征签名。如果是编码问题,则该问题更可能是不匹配的 1 字节编码,例如将 iso-8859-1 文本解码为其他 1 字节编码。如果没有问题字形的字符代码,我无法识别其他 1 字节编码(如果这实际上是问题)。

于 2013-06-27T23:11:01.363 回答