Modelica编码问题

Modelica encoding problems

自 Modelica 3.2 (released March 2010) 起,允许在注释、描述字符串 and/or 注释中使用任意 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 往返:

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

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

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

Real TempC "<html>Temperature in &deg;C<html>";

是的,这绝对是 Dymola(甚至 2016 年)缺乏 UTF8 支持的问题。那么该怎么办?对于描述字符串,您可以简单地使用 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 抱怨这个迟来的功能。

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

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