GNU bug report logs - #66941
29.1; Emacs on Windows can't display CJK characters correctly in svg images

Previous Next

Package: emacs;

Reported by: Ilya Chernyshov <ichernyshovvv <at> gmail.com>

Date: Sun, 5 Nov 2023 05:45:02 UTC

Severity: normal

Found in version 29.1

Full log


View this message in rfc822 format

From: Alan Third <alan <at> idiocy.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: ichernyshovvv <at> gmail.com, 66941 <at> debbugs.gnu.org
Subject: bug#66941: 29.1; Emacs on Windows can't display CJK characters correctly in svg images
Date: Sun, 5 Nov 2023 23:27:23 +0000
On Sun, Nov 05, 2023 at 08:54:27AM +0200, Eli Zaretskii wrote:
> > Cc: 66941 <at> debbugs.gnu.org
> > Date: Sun, 05 Nov 2023 08:47:08 +0200
> > From: Eli Zaretskii <eliz <at> gnu.org>
> > 
> > > (progn
> > >   (require 'svg)
> > >   (switch-to-buffer "*svg-test*")
> > >   (let ((svg-image (svg-create 200 200))
> > > 	(inhibit-read-only t))
> > >     (erase-buffer)
> > >     (svg-text svg-image "我喜欢自由软件" :y 100 :x 50)
> > >     (svg-print svg-image)
> > >     (image-mode)))
> > 
> > I cannot get Emacs on Windows to display _any_ non-ASCII text with the
> > above recipe, not even if I use Latin-1 characters or characters from
> > the current system codepage.  Emacs encodes non-ASCII characters as
> > &#nnnn numbers (you can see that if you type "C-c C-c" in the
> > *svg-test* buffer), which is probably correct, but the SVG image is
> > not displayed for some reason.
> > 
> > Alan, any ideas or suggestions?
> 
> Could be a problem with the font used by librsvg to show text?  Maybe
> the font doesn't have any non-ASCII characters.

This seems plausible. It should be possible to check by over-riding
the CSS with a font you know should work:

(progn
  (require 'svg)
  (switch-to-buffer "*svg-test*")
  (let ((svg-image (svg-create 200 200))
        (inhibit-read-only t))
    (erase-buffer)
    (svg-text svg-image "我喜欢自由软件" :y 100 :x 50)
    (insert-image (svg-image svg-image :css "svg{font-family:\"Noto Sans Mono CJK HK\";}"))))

Choose a font you know can show the text you're testing. I've a vague
memory that the Noto CJK fonts behave slightly oddly on Windows, so
maybe something else is a better choice.

I think setting the :css attribute to an empty string should reset
librsvg so it will use its default font settings and that would let
us see if it works right without our customisation.

-- 
Alan Third




This bug report was last modified 1 year and 283 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.