Salir
  • Comunidad global
    • Idioma:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티

What is the dif? "\u2018" & "\u"+"2018"

Participante ,
Apr 01, 2010 Apr 01, 2010

Hi all

1) app.selection[0].insertionPoints[0].contents = "\u2018";

2)    var uni = "2018";

      app.selection[0].insertionPoints[0].contents = "\u"+uni;

why does the 2nd one is not working as expected? could anyone suggest on this?

thanks & regards

Ays.Hakkim

TEMAS
Scripts
2.0K
Traducir
Informe
Directrices de la comunidad
Sé amable y respetuoso, muestra títulos de crédito de la fuente de contenido original y busca duplicados antes de publicar. Más información
community guidelines

correct answers 1 respuesta correcta

Community Expert , Apr 01, 2010 Apr 01, 2010
But at that point, why not use String.fromCharCode(2018)?

Because that will insert the Nko letter "Nya" (U+07E2).

Unicode codepoints are generally given in hexadecimal notation -- as in "\u2018" --, but the argument for fromCharCode is a number, defaulting to decimal. Either add the hexadecimal prefix "0x"

String.fromCharCode (0x2018);

or use the decimal value of this number

String.fromCharCode (8216);

Traducir
LEYENDA ,
Apr 01, 2010 Apr 01, 2010

Because backslash escapes are interpreted by the JavaScript tokenizer at the time of input. So "\u" is inrepreted as an incomplete escape, and of course "2018" is a regular string.

I suppose you could probably use eval('"\u'+uni+'"') to construct the character. But at that point, why not use String.fromCharCode(2018)?

Traducir
Informe
Directrices de la comunidad
Sé amable y respetuoso, muestra títulos de crédito de la fuente de contenido original y busca duplicados antes de publicar. Más información
community guidelines
Community Expert ,
Apr 01, 2010 Apr 01, 2010
But at that point, why not use String.fromCharCode(2018)?

Because that will insert the Nko letter "Nya" (U+07E2).

Unicode codepoints are generally given in hexadecimal notation -- as in "\u2018" --, but the argument for fromCharCode is a number, defaulting to decimal. Either add the hexadecimal prefix "0x"

String.fromCharCode (0x2018);

or use the decimal value of this number

String.fromCharCode (8216);

Traducir
Informe
Directrices de la comunidad
Sé amable y respetuoso, muestra títulos de crédito de la fuente de contenido original y busca duplicados antes de publicar. Más información
community guidelines
Participante ,
Apr 01, 2010 Apr 01, 2010

thank u Jong and John.

Traducir
Informe
Directrices de la comunidad
Sé amable y respetuoso, muestra títulos de crédito de la fuente de contenido original y busca duplicados antes de publicar. Más información
community guidelines
Guía ,
Apr 01, 2010 Apr 01, 2010

To complete the information provided above, if you need to create your Unicode character from a code given as a string (uni = "2018") you can use something like this:

String.fromCharCode(Number("0x" + uni))

Example:

var uni = "2018";

myInsertionPoint.contents = String.fromCharCode(Number("0x" + uni));

@+

Marc

Traducir
Informe
Directrices de la comunidad
Sé amable y respetuoso, muestra títulos de crédito de la fuente de contenido original y busca duplicados antes de publicar. Más información
community guidelines
Community Expert ,
Apr 01, 2010 Apr 01, 2010

If your Javascript editor allows it

  • , you can also copy the quotes out of InDesign and paste them striaght into your string:
  • myInsertionPoint.contents = "“Hello”, he lied.";

    A big font so you can see they're not the straight ones. Javascript doesn't care about what you literally put into the strings -- this and the "\u2018" notation both end up in memory exactly the same.

  • Surprise, surprise. The ESTK Editor does -- and that's not an April Fools' joke.
  • Traducir
    Informe
    Directrices de la comunidad
    Sé amable y respetuoso, muestra títulos de crédito de la fuente de contenido original y busca duplicados antes de publicar. Más información
    community guidelines
    LEYENDA ,
    Apr 01, 2010 Apr 01, 2010
    MÁS RECIENTES

    String.fromCharCode(parseInt(uni,16));

    Traducir
    Informe
    Directrices de la comunidad
    Sé amable y respetuoso, muestra títulos de crédito de la fuente de contenido original y busca duplicados antes de publicar. Más información
    community guidelines