Fonts disappear on merge or transfer

From SuperMemopedia
Jump to navigation Jump to search

problem

I combined my learning of the Hebrew, Russian, Egyptian and Arabic alphabets into one database. The problem is that the Russian alphabet seems to have suffered partial loss of fonts

reproducing the problem

  1. create a collection with RTF items containing Russian characters
  2. apply plain text template and use Cyrillic charset to retain Russian characters
  3. transfer this collection to any other collection

Result: Russian characters become replaced with question marks

workaround

Before transfer, detach the plain text template. OR After transfer, apply an RTF template.

analysis

When transferring RTF texts, SuperMemo does not bother to UTF8 encode text registry member names. This is because only RTF texts are used when displaying RTF texts in RTF components. However, if a plain text is applied, the registry member name is displayed in the text component instead of the RTF text. If the encoding is lost on transfer, RTF text will still display correctly in RTF components, but will not display correctly in Text components. Detaching the plain text template before transfer or applying an RTF template after the transfer result in displaying RTF texts as RTF. Plain text template may be still reapplied; however, the member name must be changed or the RTF text must be edited in order to make SuperMemo generate a new correctly encoded registry member name

This does not solve the problem; all Russian characters are now displayed as yah (reverse R).

(later) Even worse, all the `what is the sound of this Russian letter' questions now show the Russian letter as an acute-accented capital I. In general, it seems to me, template imposition is confusing and unreliable.