Note: this is not an implementation bug, the implementation matches the specification. It's just the specification which seems suboptimal. As specified in the system.unit man page... units with '-' in their name are converted to names with \xd1. To use this name this must be enclosed in single quotes or escaped as \\xd1. It would be much better to escape dashes as double dashes, like LVM does. So sys-devices-virtio\x1dpci-virtio1-block-vda-vda1.device would become sys-devices-virtio--pci-virtio1-block-vda-vda1.device... This is reversible too, because '//' cannot occur in a path.
Hmm, we actually follow the way udev escapes its device names in the file system. I think it is a good idea to follow an existing escaping scheme instead of inventing our own.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.