1

从 Modelica 3.2(2010 年 3 月发布)开始,允许在注释、描述字符串和/或注释中使用任意 Unicode 字符。
但由于某种原因,我在使用如下代码时遇到了问题:

within ;
model ENCO_testing "code for investigating Dymola encoding problems"
  Real TempC "Temperature in °C";
  parameter Real someNumber "description string german üöäß";
  Integer greekInt=4 "description string greek αβδεηζμθ";
  // a comment with math symbols: °²³~µ

equation 
  TempC = if greekInt > 3 then someNumber*5 else someNumber/3;
end ENCO_testing;

要重现我的问题,请尝试以下 UTF-8 往返:

  • 将上述文本复制并粘贴到您喜欢的文本编辑器中
  • 使用 UTF-8(带或不带 BOM,或任何其他编码)保存文件并关闭
  • 在最喜欢的编辑器中再次打开,然后在 OpenModelica 和 Dymola 中打开(按此顺序)
  • 如果一切看起来还不错,请点击 Dymola 中的保存按钮(可能删除一个字符并重新输入)
  • 在最喜欢的编辑器 OpenModelica 和 Dymola 中再次打开
  • 至少某些符号在某处看起来会有所不同

有人可以告诉我如何以一种在任何地方看起来都不错的方式保存该文件吗?还是我期望太高?什么必须修复,在哪里?

4

3 回答 3

1

在最新的 Dymola (Linux) 中测试 UTF-8,似乎 Dymola 不再将编码更改为 ISO-8859-1(在我的记忆中它曾经更改过这个)。但是,它看起来并不好,因为它显示为好像 UTF-8 文本是 ISO。

让它在任何地方看起来都很好的最简单方法是使用 HTML 实体。这似乎没有在 OMEdit 的模拟结果浏览器中正确显示,但在 Dymola 中显示:

Real TempC "<html>Temperature in &deg;C<html>";
于 2015-05-21T14:06:29.623 回答
1

是的,这绝对是 Dymola 中缺乏 UTF8 支持的问题(即使是 2016 年)。那么该怎么办?对于描述字符串,您可以简单地使用 html 实体来解决 Dymola 缺乏 UTF8 支持的问题。

例如,

Real TempC "<html>Temperature in &deg;C</html>";
parameter Real someNumber 
  "<html>description string german &uuml;&ouml;&auml;&szlig;</html>";

不好但有效;-)

PS:啊,向 DS 抱怨这个早就应该提供的功能。

于 2015-05-21T14:07:52.287 回答
1

在 Dymola 2016 FD01(字面意思是刚刚发布)中,您可以设置Advanced.PreferWritingLatin1=false;避免写入 iso-latin-1 文件。

如需支持,您应该使用http://www.3ds.com/support和/或联系您的经销商;地址 Dymola.support@3ds.com 已停用。

于 2015-11-25T17:05:15.600 回答