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. file name change to unix file with escaping
Forum Updated to NodeBB v4.3 + New Features

file name change to unix file with escaping

Scheduled Pinned Locked Moved Unsolved General and Desktop
29 Posts 9 Posters 4.2k Views 4 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.
  • R Offline
    R Offline
    RahibeMeryem
    wrote on 22 Nov 2019, 08:56 last edited by
    #21

    @JonB @SGaist

    I found the STUPiD problem or a bug:

    one of my folder path include 'ü' . utf8 character with spaces.

    the 'ü' is different between mac os x and linux . in the linux ls -l look %100 identical but its not.

    so I create same folder name with linux 'ü' its working now.

    suprise.

    J 1 Reply Last reply 22 Nov 2019, 09:59
    0
    • R RahibeMeryem
      22 Nov 2019, 08:56

      @JonB @SGaist

      I found the STUPiD problem or a bug:

      one of my folder path include 'ü' . utf8 character with spaces.

      the 'ü' is different between mac os x and linux . in the linux ls -l look %100 identical but its not.

      so I create same folder name with linux 'ü' its working now.

      suprise.

      J Offline
      J Offline
      JonB
      wrote on 22 Nov 2019, 09:59 last edited by JonB
      #22

      @RahibeMeryem

      in the linux ls -l look %100 identical but its not.

      That is precisely why you will see I suggested you use ls -b in all my examples, which I guess is how you spotted it....

      1 Reply Last reply
      1
      • J jsulm
        21 Nov 2019, 10:26

        @JonB said in file name change to unix file with escaping:

        So you're going to say all of these are bad practice under Windows

        Using existing system directories with spaces is not bad practice. But using own directories/file names with spaces (or umlauts) is at least questionable. I try to avoid this.

        J Offline
        J Offline
        J.Hilk
        Moderators
        wrote on 22 Nov 2019, 10:48 last edited by
        #23

        @RahibeMeryem said in file name change to unix file with escaping:

        @JonB @SGaist

        I found the STUPiD problem or a bug:

        one of my folder path include 'ü' . utf8 character with spaces.

        the 'ü' is different between mac os x and linux . in the linux ls -l look %100 identical but its not.

        so I create same folder name with linux 'ü' its working now.

        suprise.

        Ah, we went full circle, let me quote:

        @jsulm said in file name change to unix file with escaping:

        @JonB said in file name change to unix file with escaping:

        So you're going to say all of these are bad practice under Windows

        Using existing system directories with spaces is not bad practice. But using own directories/file names with spaces (or umlauts) is at least questionable. I try to avoid this.


        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


        Q: What's that?
        A: It's blue light.
        Q: What does it do?
        A: It turns blue.

        J 1 Reply Last reply 22 Nov 2019, 11:17
        1
        • J J.Hilk
          22 Nov 2019, 10:48

          @RahibeMeryem said in file name change to unix file with escaping:

          @JonB @SGaist

          I found the STUPiD problem or a bug:

          one of my folder path include 'ü' . utf8 character with spaces.

          the 'ü' is different between mac os x and linux . in the linux ls -l look %100 identical but its not.

          so I create same folder name with linux 'ü' its working now.

          suprise.

          Ah, we went full circle, let me quote:

          @jsulm said in file name change to unix file with escaping:

          @JonB said in file name change to unix file with escaping:

          So you're going to say all of these are bad practice under Windows

          Using existing system directories with spaces is not bad practice. But using own directories/file names with spaces (or umlauts) is at least questionable. I try to avoid this.

          J Offline
          J Offline
          JonB
          wrote on 22 Nov 2019, 11:17 last edited by JonB
          #24

          @J-Hilk
          For all we know he has no choice about directory spelling. E.g. if his user name contains an umlaut he types in, I would guess Linux creates his home directory based on this. Perhaps because this is "bad practice" we'd better tell Linux to change its ways.... Or, perhaps the user should change his real name to accommodate...

          J 1 Reply Last reply 22 Nov 2019, 11:31
          0
          • J JonB
            22 Nov 2019, 11:17

            @J-Hilk
            For all we know he has no choice about directory spelling. E.g. if his user name contains an umlaut he types in, I would guess Linux creates his home directory based on this. Perhaps because this is "bad practice" we'd better tell Linux to change its ways.... Or, perhaps the user should change his real name to accommodate...

            J Offline
            J Offline
            J.Hilk
            Moderators
            wrote on 22 Nov 2019, 11:31 last edited by
            #25

            @JonB said in file name change to unix file with escaping:

            Or, perhaps the user should change his real name to accommodate...

            yep, that's what I did at my old work place,
            ü -> ue


            Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


            Q: What's that?
            A: It's blue light.
            Q: What does it do?
            A: It turns blue.

            A 1 Reply Last reply 22 Nov 2019, 11:36
            0
            • J J.Hilk
              22 Nov 2019, 11:31

              @JonB said in file name change to unix file with escaping:

              Or, perhaps the user should change his real name to accommodate...

              yep, that's what I did at my old work place,
              ü -> ue

              A Offline
              A Offline
              artwaw
              wrote on 22 Nov 2019, 11:36 last edited by
              #26

              @J-Hilk a bit OT but touches the good/bad practice part: in my workplace we have around 20 nationalities using 4 or 5 different alphabets. All the names and surnames in the sysaccounts/paths are transliterated to English exactly to avoid problems like that.

              For more information please re-read.

              Kind Regards,
              Artur

              1 Reply Last reply
              4
              • M Offline
                M Offline
                mpergand
                wrote on 22 Nov 2019, 13:13 last edited by mpergand
                #27

                This vicious bug is due to the fact that Mac file system uses a special variant of unicode called decomposed form (NFD)
                see https://developer.apple.com/library/archive/qa/qa1235/_index.html

                However, you may need to convert to precomposed Unicode when you interact with other platforms.
                For example, the following are all valid reasons why you might want to convert to precomposed Unicode:
                -If you implement a network protocol which is defined to use precomposed Unicode.
                -When creating a cross-platform file (or volume) whose specification dictates precomposed Unicode.
                -If you incorporate a large body of cross-platform code into your application,
                where that code is expecting precomposed Unicode.

                For the same reason, if you're using C/C++ libraries that deal with file paths, it's advisable to use the following method for converting QString to *char:
                [filePath.toNSString() fileSystemRepresentation];

                1 Reply Last reply
                2
                • SGaistS SGaist
                  21 Nov 2019, 16:16

                  @KroMignon that's a shell shortcut so it may or may not work depending on what you are doing.
                  Using QStandardPaths would be better.

                  Kent-DorfmanK Offline
                  Kent-DorfmanK Offline
                  Kent-Dorfman
                  wrote on 24 Nov 2019, 23:36 last edited by
                  #28

                  @SGaist

                  @SGaist said in file name change to unix file with escaping:

                  @KroMignon that's a shell shortcut so it may or may not work depending on what you are doing.
                  Using QStandardPaths would be better.

                  Yes, tilde is a shell shortcut, so should only ever be used in immediate mode on the command line in shells that recognize it. Use anywhere else can and probably will fail to be interpreted properly.

                  J 1 Reply Last reply 25 Nov 2019, 09:14
                  1
                  • Kent-DorfmanK Kent-Dorfman
                    24 Nov 2019, 23:36

                    @SGaist

                    @SGaist said in file name change to unix file with escaping:

                    @KroMignon that's a shell shortcut so it may or may not work depending on what you are doing.
                    Using QStandardPaths would be better.

                    Yes, tilde is a shell shortcut, so should only ever be used in immediate mode on the command line in shells that recognize it. Use anywhere else can and probably will fail to be interpreted properly.

                    J Offline
                    J Offline
                    JonB
                    wrote on 25 Nov 2019, 09:14 last edited by JonB
                    #29

                    @Kent-Dorfman
                    Hence @SGaist's comment that you would hardly ever want to construct a QFile("~...") anything. The only times would be for path-splitting function calls (even then be careful, e.g. Qt will think it's a relative path when in effect it's actually absolute), or to convert directly to string for passing to an OS command. Any other operations like trying to open it will not address the intended file (e.g. https://stackoverflow.com/questions/2816499/why-cant-qfile-read-from-the-directory).

                    1 Reply Last reply
                    0

                    21/29

                    22 Nov 2019, 08:56

                    • Login

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