• AProfessional@lemmy.world
      link
      fedilink
      English
      arrow-up
      20
      ·
      edit-2
      9 months ago

      Linux APIs are 8bit, instead of 16bit, however the filesystem encoding can be anything if the user wants.

      In practice we all use UTF-8 but correct software has to encode to the correct one just in case.

      There is also still a max path length, but it’s longer like 4096.

    • Max-P@lemmy.max-p.me
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      9 months ago

      It’s better and worse at the same time: it just doesn’t bother with it for the most part. If you have files named with UTF-8 characters, and run it with a locale that uses an ISO-whatever charset, it just displays them wrong. As long as the byte is not a zero or an ASCII forward slash, it’ll take it.

      There’s still a path length limit but it’s bigger: 255 bytes for filenames and 4096 bytes for a whole path. That’s bytes, not characters. So if you use UTF-16 like on Windows, those numbers are halved.

      That said, it’s assumed to be UTF-8 these days and should be interpreted as UTF-8, nobody uses non-UTF-8 locales anymore. But you technically can.