Невозможно использовать имя файла в кодировке utf-8 для настройки формы узла. - PullRequest
4 голосов
/ 06 декабря 2011

Я сохранил файл кода DOT в кодировке utf-8.Но он не может вывести png файл изображения с настроенной формой.Есть ли пример, демонстрирующий использование charviz пользователем определенной кодировки?

Демонстрационный код находится здесь.

digraph G {

    bgcolor=black;
    edge [arrowsize=1, color=red];

    node [penwidth=1, color=white, labelloc=b];

    BR [shape=box, label="BR", charset="utf-8", image="图元.png"];
    DS [shape=plaintext, fontname="SimSun", fontcolor=white, fontsize=18, label="测点"];
    BR -> DS[dir=forward];
}

А результаты командной строки перечислены следующим образом.

C:\dot>dot -Gcharset=utf-8 -Tpng -o demo.png demo.dot
Warning: No such file or directory while opening 鍥惧厓.png
Warning: No or improper image="鍥惧厓.png" for node "BR"

1 Ответ

0 голосов
/ 14 октября 2013

Где-то в цепочке проблема с кодированием.Имя файла изображения в источнике - 图元.png, но когда graphviz читает его, он видит 鍥惧厓.png.

Это говорит о том, что вы не сохранили файл как UTF-8 или что кодировка по умолчанию вашегоОС не UTF-8.Я не мог найти способ сообщить graphviz кодировку источника в документации.Опция charset используется только «при интерпретации ввода строки как текстовой метки».(см. также « Кодировки символов »)

Так что это не решит вашу проблему.Одним из решений является замена символов Юникода на HTML-сущность.Таким образом, вы можете использовать "圖元.png", но, опять же, в документации сказано: «Во время оценки метки эти сущности переводятся», что, вероятно, означает, что они не переведены нигде.

...