【问题标题】:Display non-ASCII character in ImageJ在 ImageJ 中显示非 ASCII 字符
【发布时间】:2012-06-01 13:23:26
【问题描述】:

简单的问题,但我无法在任何地方找到答案。到目前为止,没有任何搜索策略对我有用。

我有一个 ImageJ 宏,它打开一个对话框供用户设置图像叠加层的大小。该对话框提示用户提供以微米为单位的覆盖层尺寸:

Dialog.addNumber("Width (µm):", 500);
Dialog.addNumber("Height (µm):", 250);

问题是对话框没有按预期显示:在微米符号前面打印了一个额外的字符。而不是这个(μm),我得到这个(¬μm)。

很明显,这是一个字符编码问题。但是我在任何地方都找不到任何文档告诉我如何正确地将非 ASCII 字符插入 ImageJ 对话框。我尝试过以各种我能想到的方式使用 ASCII 代码 (230) 和 Unicode (U+00B5),但在这些情况下,它只是呈现为代码而不是符号。 ImageJ 中有宏调用来获取字符的 Unicode 字符串,但是除了作为数字字符串之外,没有办法将其打印回来?我被难住了。

【问题讨论】:

  • 我自己无法重现这个 - µ 看起来很好,没有前面的字符。您能否使用(a)您正在使用的 ImageJ 版本(b)您正在使用的 Java 版本和(c)操作系统来更新您的问题? (a) 和 (b) 可以通过Help > About ImageJ 找到
  • 使用 ImageJ 1.45s、Java 1.6.0_31 64 位、OS X 10.7.3。
  • 你的宏的编码是什么,file -I

标签: java macros imagej


【解决方案1】:

你要做的是:

Dialog.addNumber("Width (" + fromCharCode(181) + "m):", 500);
Dialog.addNumber("Height (" + fromCharCode(181) + "m):", 250);

其中181是十六进制00B5的十进制值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 2019-05-21
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多