Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^2: Problem with escape sequence \x for hex with spaces "\x{ 263A }"

by LanX (Saint)
on Jun 11, 2022 at 05:25 UTC ( [id://11144683]=note: print w/replies, xml ) Need Help??


in reply to Re: Problem with escape sequence \x for hex with spaces "\x{ 263A }"
in thread Problem with escape sequence \x for hex with spaces "\x{ 263A }"

> What am I missing?

the interactive debugger is redirecting STDOUT with every eval. You need to do it inline

DB<3> binmode STDOUT, ':utf8'; print "\x{263A}" \u263A

of course your terminal° must also be capable to display smileys :)

I think if you want to change STDOUT globally for the debugger, some of the unicode flags in perlrun should do. (untested)

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

°) in my case emacs inside the console

  • Comment on Re^2: Problem with escape sequence \x for hex with spaces "\x{ 263A }"
  • Download Code

Replies are listed 'Best First'.
Re^3: Problem with escape sequence \x for hex with spaces "\x{ 263A }"
by kcott (Archbishop) on Jun 11, 2022 at 06:10 UTC
    "I think if you want to change STDOUT globally for the debugger, some of the unicode flags in perlrun should do. (untested)"

    I tried all of these:

    $ perl -C -de1 ... $ perl -de1 ... DB<1> use open OUT => qw{:encoding(UTF-8) :std} ... $ perl -Mopen=OUT,:encoding\(UTF-8\),:std -de1 ...

    All gave the "Wide character ..." warning. All still printed "". There's probably other avenues of investigation for a global change: I didn't try anything further.

    — Ken

      I think you need to append 'O' for "Output" to the '-C'

      (my CMD-terminal has CP 850 so no emojis, sorry °)

      C:\tmp>perl -we" binmode STDOUT, ':utf8'; print qq[\x{263A}] " Ôÿ&#9553; C:\tmp>perl -CO -wde0 ... main::(-e:1): 0 DB<1> print "\x{263A}" Ôÿ&#9553; DB<2>

      UPDATE (codepage)

      °) ah found the way to change the codepage

      C:\tmp>CHCP 65001 Aktive Codepage: 65001. C:\tmp>perl -CO -wde0 ... yadda yadda ... DB<1> print "\x{263A}" &#9786; DB<2>

      PM's codeblocks are limited here², thats what I see ---> ☺ (sic)

      update (pre tags)

      ²) or with <pre><tt> tags instead

      
      C:\tmp>perl -CO -wde0
      
      ...
      
        DB<1> print "\x{263A}"
      ☺
        DB<2>
      

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

        I don't use the debugger (except in exercises like this) so it's more trial and error than knowledge for me. Anyway, I found the issue actually revolves around whether p or print is used.

        $ perl -C -de1
        ...
          DB<1> print "\x{263A}"
        ☺
          DB<2> p "\x{263A}"
        Wide character ...
        ...
        ☺
        

        My guesswork here was based on a long-standing alias of mine:

        $ alias perlu alias perlu='perl -Mstrict -Mwarnings -Mautodie=:all -Mutf8 -C -E'

        For example:

        $ perlu 'say for $], "\x{263A}", "\x{ 263A }"'
        5.036000
        ☺
        ☺
        

        Update (checking for false positives):

        $ perl -de1
        ...
          DB<1> print "\x{263A}"
        Wide character ...
        ...
        ☺
        
        $ alias perle alias perle='perl -Mstrict -Mwarnings -Mautodie=:all -MCarp::Always -E +'
        $ perle 'say for $], "\x{263A}", "\x{ 263A }"'
        5.036000
        Wide character in say at -e line 1.
        ☺
        Wide character in say at -e line 1.
        ☺
        

        — Ken

        Worked a treat on Mac.

        ~>perl -CO -wde0
        # ...
        main::(-e:1):	0
          DB<1> print "\x{263A}"
        ☺
        
Re^3: Problem with escape sequence \x for hex with spaces "\x{ 263A }"
by Aldebaran (Curate) on Jun 11, 2022 at 07:00 UTC
    the interactive debugger is redirecting STDOUT with every eval. You need to do it inline

    Aha...

      DB<1> binmode STDOUT, ':utf8'; print "\x{263A}"                               
    ☺
      DB<2>   
    

    Endlich erlungen. Vielen Dank....

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11144683]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (1)
As of 2024-04-25 04:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found