Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-69324

QLocale can't represent outer plane characters

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Done
    • Affects Version/s: 5.0.0, 5.12
    • Fix Version/s: None
    • Component/s: Core: Locales (i18n)
    • Labels:
      None
    • Commits:
      ed2b110b6add650954dc102a0317c14ff826c677 (qt/qtbase/dev)

      Description

      QLocaleData has several quint16 members that represent single characters (e.g. the zero and punctuation for a number system, quotation starts and ends). If the character to be represented isn't encoded in UTF-16 as a single char16, this can't work. Various methods likewise take QChar parameters and the QLocale methods that return the characters in question return QChar; the same problem arises here. These QLocale methods even have a comment

          // ### Qt 5: We need to return QString from these function since
          //           unicode data contains several characters for these fields.
      

      which plainly didn't get resolved at Qt5.

      CLDR v32 adds support for the Chakma language whose number system (previously present but not referenced by anything we use) has digits 0x11136 +i for digit i, which fall foul of this problem, obliging us to omit support for Chakma even though we're now using versions of CLDR that support it. A previously theoretical problem thus becomes actual.

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              Assignee:
              Eddy Edward Welbourne
              Reporter:
              Eddy Edward Welbourne
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes