【问题标题】:Formatting Issue when Using Manipulate to display Lists使用 Manipulate 显示列表时的格式问题
【发布时间】:2011-12-02 10:47:50
【问题描述】:

请考虑以下问题。

我正在编写一个快速的Manipulate[] 程序来显示大量信息,但遇到了 unicode 问题。这是我目前的输入和输出:

Manipulate[
 request = filenumber <> "*";
 filenames = FileNames[request];
 display = Import[type, "List"];
 Short[display, 25]
 , {filenumber, "001", InputField}, {type, filenames, PopupMenu}]

问题是法语口音出现的很奇怪。我想到的快速解决方法是将我的代码更改为 Import[type,"Plaintext"]; 可以工作,但随后以列表形式显示信息,如下所示:

您有什么建议可以让第二个示例的清晰性与前者的简单列表格式相结合?这样它就换行了,而不是在每个条目后换行。

顺便说一句 - 可能与实际问题本身一样重要 - 任何人都可以解释为什么导入为“列表”会扭曲 unicode 背后的基本原理吗?我在解决这个问题时遇到了很多麻烦,了解潜在行为可能会帮助我更快地前进。

【问题讨论】:

  • 你试过Import[filename, "List", CharacterEncoding -&gt; "UTF8"]
  • @Sasha 这太棒了。 CharacterEncoding -&gt; "UTF8" 将被我广泛使用。你想把它放在答案中以便我投票吗?
  • @Sasha 我遇到了这个编码问题,并且一直在做本可以很快避免的变通方法。我认为这是 Import 类型所固有的,但我想不是。 :)
  • 对于一个看似简单的问题,我很抱歉:我以前从未听说过 CharacterEncoding 命令。很高兴我问了!
  • 伊恩,几天前我在玩你的数据文件时问了一个类似的问题,并在你原来的问题的评论中链接到它:stackoverflow.com/questions/8254429/…答案告诉你如何修复编码已经导入了字符串,我在问题本身中提到了ImportCharacterEncoding 选项。

标签: wolfram-mathematica


【解决方案1】:

虽然Import 没有与其自身关联的选项,但它采用与要导入的格式相关的选项。具体选项列表请参见ref/Format/ListOptions 部分。

在手头的情况下,你可以用CharacterEncoding-&gt;"UTF8"表示文件编码:

Import[filename, "List", CharacterEncoding -> "UTF8"]

【讨论】:

  • 如上所述,这很棒。我手边没有给我带来麻烦的文件,但CharacterEncoding 文档提到了PutGet - 这个命令是否足够通用,可以在Export[] 上工作?
  • @HarmonicesMundi UTF 编码适应(几乎)所有存在的字符,所以它应该处理它。可以通过$CharacterEncodings 访问可用和支持的编码列表。从该列表中,我会尝试"WindowsEastEurope""UTF8"
  • @HarmonicesMundi 看来您使用的是 v7。我相信这个问题在 v8 中得到了解决。无论如何,您最好将您的问题报告给 wolfram dot com 的支持人员。
猜你喜欢
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-05
相关资源
最近更新 更多