2
$\begingroup$

I have the following pure ASCII character list:

list ={"a", "\\:1d62", "\\:2081", "\\[Beta]", "\\:2081", " ", "+", " ", \
"a", "\\:1d62", "\\:2082", "\\[Beta]", "\\:2082", " ", "+", " ", ".", \
".", ".", " ", "+", " ", "a", "\\:2099", "\\:2081", "\\[Beta]", \
"\\:2099", " ", "=", " ", "b", "\\:1d62"}

How can I convert it to Mathematica Input Form ?

I tried: FromCharacterCode[ToString[#, "ASCII"] &/@list

But it does not work.

$\endgroup$
4
  • $\begingroup$ You should be converting hex to decimal first before applying FromCharacterCode[]: FromCharacterCode[16^^1d62] $\endgroup$ Commented Oct 16, 2018 at 13:13
  • $\begingroup$ Or ToExpression["\\:1d62"]. $\endgroup$ Commented Oct 16, 2018 at 14:33
  • $\begingroup$ Do you want the output to be symbols or strings? Should it be a or "a"? Should it be \[Beta] or "[Beta]"? I assume it should be strings, otherwise you will have a mixture of strings and symbols, since there is no expression that matches " " or "+". $\endgroup$
    – Carl Woll
    Commented Oct 16, 2018 at 15:10
  • $\begingroup$ @CarlWoll The answer to this question is exactly what I was looking for. Do you think that one could use this to automate this question: mathematica.stackexchange.com/questions/183981/… $\endgroup$
    – james
    Commented Oct 16, 2018 at 15:30

1 Answer 1

3
$\begingroup$

As @Rohit suggests in the comments, one possibility is to use ToExpression. However, to be safer, one might want to use Symbol instead. So:

Replace[
    list,
    a_ /; StringLength[a] > 1 :> Check[SymbolName @ Symbol[a], $Failed],
    {1}
] //InputForm

{"a", "ᵢ", "₁", "β", "₁", " ", "+", " ", "a", "ᵢ", "₂", "β", "₂", " ", "+", " ", ".", ".", ".", " ", "+", " ", "a", "ₙ", "₁", "β", "ₙ", " ", "=", " ", "b", "ᵢ"}

$\endgroup$
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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