I am making a programming text editor (IDE) that will support only UTF-8 files.

But want to provide some way to convert the old ANSI encoded files. So, I have conversion tool that gives the user a list with code pages and preview window (it order to verify the proper conversion).

The list contains 150 different code pages.

The question is how to sort them in order to provide better user experience?

Here is a screenshot of the dialog box with wrong code page selected: enter image description here

  • What's a code page? – Andre Dickson Oct 1 '16 at 8:51
  • @AndreDickson It is the ANSI encoding scheme for the text - these WIN1252, KOI8-RU things. For Windows fonts the term "script" is used sometimes. Another term used is "character set" or "charset". – johnfound Oct 1 '16 at 9:20
  • I see. Do you have a mockup of the UI? Having trouble visualizing this. – Andre Dickson Oct 1 '16 at 9:24
  • @AndreDickson - the question edited - added screenshot. – johnfound Oct 1 '16 at 9:49
  • Encoding and Code Page are not the same thing. blogs.msdn.microsoft.com/shawnste/2005/03/15/… – paparazzo Oct 3 '16 at 14:42

I would sort the list alphabetically, so users who are aware of their code page can scroll through the list quickly. I don't think further sorting would help frankly, since I can't think of any relevant factors that you would be able to sort on. However, if the user has already gone through the process you can place their previous choices first in the list or provide a default conversion option.

There would also be users who are unaware of the code page they have used. I would consider figuring out a reliable method that a typical user could use to determine their code page and provide these instructions. Without this guidance, they may have to try dozens of code pages before moving forward.

There are some solutions that I think the user would love to have but would probably be infeasible for you to implement.

  1. It would be ideal if you could detect the code page instantly, the same way Google Translate detects a language.
  2. It would also be helpful if you could narrow down the possible code pages instead of providing the full list of 150. Instead of providing instructions as I mentioned before, you can retrieve relevant inputs from the user to help with this. Or, you can do this with an algorithm if it's possible.
  • 1
    Reliable detecting of the encoding is very hard to implement and simply not worth for such fall-back mechanism. But your other suggestions are reasonable. – johnfound Oct 1 '16 at 10:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.