# Should a character encoding that can't actually be used by a compiler/interpreter be allowed?

Suppose you are answering a code-golf challenge in a language whose interpreter can only use UTF-8. Say you have a program that uses some code points in the range 128-255, but not higher. Would it then be permissible to encode your answer in Latin-1 or some other single-byte encoding?

I would argue that only encodings directly usable with the language interpreter should be allowed. Otherwise, one could compress any answer and then claim that it uses a zip encoding.

This question is motivated mainly by answers that use an APL code page. I suspect that not all modern APL interpreters are capable of executing source that uses this encoding (but maybe I'm wrong).

• Which compiler/interpreter? It's not fair if all APL interpreters have to support the encoding being used. Oct 22, 2015 at 2:31
• I would be amazed if there was an APL interpreter that didn't support the APL code page because then what's the point? Oct 22, 2015 at 2:33
• @AlexA. The APL codepage was created eons ago to be used on IBM mainframes. The technology may have moved on by now. Oct 22, 2015 at 2:35
• I think this question falls under meta.codegolf.stackexchange.com/q/5878/20469. Oct 22, 2015 at 2:36
• @Calvin'sHobbies The various APL flavors are all mutually incompatible, so most programs only work on one of them. Oct 22, 2015 at 2:37
• @AlexA. But none of the answers to that question address the point I'm bringing up here. Oct 22, 2015 at 2:38
• @feersum what about MartinBüttner's comment on that question itself? Oct 22, 2015 at 6:58
• Once I checked the APL code page in Wikipedia and didn't find some important characters like ⍪. But I'm not sure whether it is the code page being used in modern APL. Oct 22, 2015 at 9:41
• @DanHenderson This one? I don't see how it's relevant. Oct 22, 2015 at 11:36
• Either way, the problem is trivial to fix. Someone writes a program that converts from the legacy APL encoding to the Unicode APL characters and feeds the code to a "real" interpreter-- then an interpreter exists. Oct 24, 2015 at 4:01
• @jimmy23013 See here.
Jun 21, 2016 at 22:12

# No

People need to be able to actually run your entry. Just as you can't write code with syntax errors, you can't write code that your interpreter won't compile because it's not encoded in a certain way.

If you need a certain encoding for a language, write your own interpreter, even if it just converts encodings and delegates to the real one (as @ThomasKwa said in comments).

# Have it be a different language.

In effect, the new language is a combination of recode (with the right arguments) and the original language.

For by-language competitions, it thus wouldn't compete against the original language, but just against your own recoded language.