well I did a little test in C:
    
    
    #include <stdio.h>
    
    void printStr(const char* str){
            printf("%s\n", str);
    }
    
    
    int main() {
            printStr("\327\220\327\221\327\233=\327\222");
    }
    

breakpoint in printStr and echo the value of str:
    
    
    % gdb a.out
    GNU gdb (GDB) 7.12
    Copyright (C) 2016 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-pc-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.
    For help, type "help".
    Type "apropos word" to search for commands related to "word"...
    Reading symbols from a.out...done.
    (gdb) break printStr
    Breakpoint 1 at 0x400502: file test.c, line 4.
    (gdb) run
    Starting program: /tmp/a.out
    
    Breakpoint 1, printStr (str=0x4005b4 "אבכ=ג") at test.c:4
    4           printf("%s\n", str);
    (gdb) p str
    $1 = 0x4005b4 "אבכ=ג"
    (gdb)
    

Gdb prints that value just fine. It's your node.js that converts the utf8 of 
the string into escape sequences in the first place.

Reply via email to