4 replaced http://mathematica.stackexchange.com/ with https://mathematica.stackexchange.com/
source | link

Consider the following setup, based on this answer by WReachthis answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?


EDIT: Inspecting the cell expression shows that it does indeed contain the 39-character string "\[ODoubleAcute]\[UAcute]\[UDoubleAcute]". So the key to the solution may be figuring out how to convert this to a unicode string containing those characters.

EDIT 2: I found the following way to convert named characters in a string str to actual unicode characters. But this is undocumented, I don't know where it may go wrong, and I'm sure there must be something better ...

First@FrontEndExecute[FrontEnd`ExportPacket[Cell[str], "InputText"]]

Consider the following setup, based on this answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?


EDIT: Inspecting the cell expression shows that it does indeed contain the 39-character string "\[ODoubleAcute]\[UAcute]\[UDoubleAcute]". So the key to the solution may be figuring out how to convert this to a unicode string containing those characters.

EDIT 2: I found the following way to convert named characters in a string str to actual unicode characters. But this is undocumented, I don't know where it may go wrong, and I'm sure there must be something better ...

First@FrontEndExecute[FrontEnd`ExportPacket[Cell[str], "InputText"]]

Consider the following setup, based on this answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?


EDIT: Inspecting the cell expression shows that it does indeed contain the 39-character string "\[ODoubleAcute]\[UAcute]\[UDoubleAcute]". So the key to the solution may be figuring out how to convert this to a unicode string containing those characters.

EDIT 2: I found the following way to convert named characters in a string str to actual unicode characters. But this is undocumented, I don't know where it may go wrong, and I'm sure there must be something better ...

First@FrontEndExecute[FrontEnd`ExportPacket[Cell[str], "InputText"]]
3 added 301 characters in body
source | link

Consider the following setup, based on this answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?


EDIT: Inspecting the cell expression shows that it does indeed contain the 39-character string "\[ODoubleAcute]\[UAcute]\[UDoubleAcute]". So the key to the solution may be figuring out how to convert this to a unicode string containing those characters.

EDIT 2: I found the following way to convert named characters in a string str to actual unicode characters. But this is undocumented, I don't know where it may go wrong, and I'm sure there must be something better ...

First@FrontEndExecute[FrontEnd`ExportPacket[Cell[str], "InputText"]]

Consider the following setup, based on this answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?


EDIT: Inspecting the cell expression shows that it does indeed contain the 39-character string "\[ODoubleAcute]\[UAcute]\[UDoubleAcute]". So the key to the solution may be figuring out how to convert this to a unicode string containing those characters.

Consider the following setup, based on this answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?


EDIT: Inspecting the cell expression shows that it does indeed contain the 39-character string "\[ODoubleAcute]\[UAcute]\[UDoubleAcute]". So the key to the solution may be figuring out how to convert this to a unicode string containing those characters.

EDIT 2: I found the following way to convert named characters in a string str to actual unicode characters. But this is undocumented, I don't know where it may go wrong, and I'm sure there must be something better ...

First@FrontEndExecute[FrontEnd`ExportPacket[Cell[str], "InputText"]]
2 added 268 characters in body
source | link

Consider the following setup, based on this answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?


EDIT: Inspecting the cell expression shows that it does indeed contain the 39-character string "\[ODoubleAcute]\[UAcute]\[UDoubleAcute]". So the key to the solution may be figuring out how to convert this to a unicode string containing those characters.

Consider the following setup, based on this answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?

Consider the following setup, based on this answer by WReach:

eval = (ToString[#] &)

CellPrint[
 Cell[TextData["őúű"], "Program", 
  Evaluatable -> True,       
  CellGroupingRules -> "InputGrouping",
  CellEvaluationFunction -> eval]]

This will create a cell that, when evaluated, will simply output its own contents, converted to a string. My goal is to preserve non-ASCII characters during this conversion.

Notice that with the example contents I included, I get this string as output

"\[ODoubleAcute]\[UAcute]\[UDoubleAcute]"

This is not the same as the input, "őúű". The difference is not just in display, it's actually a different string as you can verify using StringLength or exporting the string to a file. What I need to get is:

"őúű"

i.e. a string of length 3.

How can I get this?


EDIT: Inspecting the cell expression shows that it does indeed contain the 39-character string "\[ODoubleAcute]\[UAcute]\[UDoubleAcute]". So the key to the solution may be figuring out how to convert this to a unicode string containing those characters.

1
source | link