Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Got off the encoding
Forum Updated to NodeBB v4.3 + New Features

Got off the encoding

Scheduled Pinned Locked Moved General and Desktop
15 Posts 3 Posters 6.9k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    Franzk
    wrote on last edited by
    #5

    [quote]
    @ QString str;
    QByteArray bArray = process->readAllStandardOutput();
    str = QString(bArray).toLocal8Bit();
    QTextCodec * tc = QTextCodec::codecForLocale();
    if(tc->canEncode(str))
    textEdit->append(tc->toUnicode(bArray));@
    [/quote]
    You are worried about the outgoing encoding, but you forget the incoming encoding. This code makes no sense at all.

    Get your incoming encoding right:

    @ // untested
    QTextCodec *codec = QTextCodec::codecForLocale();
    QByteArray bytes = process->readAllStandardOutput();
    QString str = codec->toUnicode(bytes);
    textEdit->append(str);
    @

    While you're at it, check if codecForLocale() is actually the codec you need.

    "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

    http://www.catb.org/~esr/faqs/smart-questions.html

    1 Reply Last reply
    0
    • R Offline
      R Offline
      Ruzik
      wrote on last edited by
      #6

      bq. While you’re at it, check if codecForLocale() is actually the codec you need.

      It seems that no,

      “бв ­®ўЄ бўп§Ё б CORBINA...
      Џа®ўҐаЄ Ё¬Ґ­Ё Ё Ї а®«п Ї®«м§®ў ⥫п...
      ђҐЈЁбва жЁп Є®¬ЇмовҐа ў бҐвЁ...
      “бв ­®ў«Ґ­ бўп§м б CORBINA.
      Љ®¬ ­¤ гбЇҐи­® § ўҐа襭 .

      1 Reply Last reply
      0
      • F Offline
        F Offline
        Franzk
        wrote on last edited by
        #7

        That of course implied that you find out what encoding the external process uses to output it's text. Does it look OK when you run the application in a console? Does the application documentation say anything about it?

        "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

        http://www.catb.org/~esr/faqs/smart-questions.html

        1 Reply Last reply
        0
        • R Offline
          R Offline
          Ruzik
          wrote on last edited by
          #8

          Process - rasdial.exe in Windows(http://msdn.microsoft.com/en-us/library/aa377004(v=vs.85).aspx )
          Output on the russian language(on the my computer), but i dont know encoding of this process

          1 Reply Last reply
          0
          • F Offline
            F Offline
            Franzk
            wrote on last edited by
            #9

            There is a slight possibility that that program outputs utf16 encoded data. Just using the byte array won't bu sufficient then. I'm not sure how to find out whether it does, though.

            "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

            http://www.catb.org/~esr/faqs/smart-questions.html

            1 Reply Last reply
            0
            • R Offline
              R Offline
              Ruzik
              wrote on last edited by
              #10

              bq. I’m not sure how to find out whether it does, though

              I try to ask it by Microsoft))

              1 Reply Last reply
              0
              • R Offline
                R Offline
                Ruzik
                wrote on last edited by
                #11

                Microsoft didnt get me answer, i think that Vass was right, it is CP1251(Windows-1251)

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  Ruzik
                  wrote on last edited by
                  #12

                  I found that it is may CP1251 or koi8-U

                  1 Reply Last reply
                  0
                  • F Offline
                    F Offline
                    Franzk
                    wrote on last edited by
                    #13

                    Consider choosing that locale explicitly:

                    @QTextCodec *cp1251 = QTextCodec::codecForName("Windows-1251");
                    QTextCodec *koi8u = QTextCodec::codecForName("KOI8-U");
                    @
                    for example, and see if that makes a difference in converting the string to unicode/QString.

                    "Horse sense is the thing a horse has which keeps it from betting on people." -- W.C. Fields

                    http://www.catb.org/~esr/faqs/smart-questions.html

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      Ruzik
                      wrote on last edited by
                      #14

                      Yes, it makes a difference in converting the string to unicode/QString
                      Windows-1251:
                      “бв ­®ў«Ґ­ бўп§м б CORBINA.
                      Љ®¬ ­¤ гбЇҐи­® § ўҐа襭 .

                      Koi8-U
                      ⌠АБ═ґ╝╒╚╔ґ═ А╒ОїЛ А CORBINA.
                      ┼╝╛═ґє═ ЦА╞╔Хґ╝ ї═╒╔ЮХ╔ґ═.

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        Ruzik
                        wrote on last edited by
                        #15

                        I find it, it was CP866
                        Many thanks for your help!

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved