Jump to content

Search the Community

Showing results for tags 'utf8'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


WWW


Interests

Found 3 results

  1. Good morning, I am trying to read a Unicode utf8 string from a perl subprocess via StdoutRead. I use an AUtoIt GUI and display result in an 'Edit' control (see my code below) using 'Courier New', a font that can handle Unicode characters. I was expecting a result looking like (CMD console): ++$ chcp 65001>NUL: & perl -Mutf8 -CS -e "use 5.018; binmode STDOUT,q(:utf8); say qq(\x{03A9})" & chcp 850>NUL: Ω Instead I get someting like this (see downward the screen copy): ++$ chcp 1250>NUL: & perl -Mutf8 -CS -e "use 5.018; binmode STDOUT,q(:utf8); say qq(\x{03A9})" & chcp 850>NUL: Ω Obviously while I was expecting to receive an utf8 char, it seems to have been converted to Windows ANSI codepage 1250 (Windows default for Western/Central Europe, right ?) What am I doing wrong? Is there someone who could guide me? Here is my code and my output in the GUI. Creating and configuring the Edit control: Local $Edit1 = GUICtrlCreateEdit( "", 20, 110, 780, 500, BitOr($GUI_SS_DEFAULT_EDIT,$ES_MULTILINE,$ES_READONLY) ) GUICtrlSetData($Edit1, "This field will contain text result from external Perl command") GUICtrlSetFont($Edit1, 10, $FW_THIN, $GUI_FONTNORMAL, "Courier New") Executing Perl command (note: `-Mutf8` and `-CS` garantees that I work in utf8 and STDOUT accepts wide-characters): local $ExePath = 'perl.exe -Mutf8 -CS ' ;~ if perl in PATH, no need for full path C:\Perl\bin\perl.exe local $Params = '-e "use 5.018; use utf8; use charnames q(:full); binmode STDOUT,q(:utf8);' & _ 'say scalar localtime; say qq(\N{GREEK CAPITAL LETTER OMEGA})"' local $Cmd = $ExePath & ' ' & $Params Local $iPID = Run($Cmd, "", @SW_HIDE, BitOR($STDERR_CHILD, $STDOUT_CHILD)) Reading STDOUT and displaying it into the Edit control: While 1 $sOutput &= StdoutRead($iPID) If @error Then ; Exit the loop if the process closes or StdoutRead returns an error. ExitLoop EndIf WEnd If $sOutput <> '' Then GUICtrlSetData($Edit1, $sOutput) EndIf And now, what I get on my GUI:
  2. Autoit v3.3.14.1 converts hexstring not only to string but also to UTF8. Conversion to UTF8 is undocumented in helpfile. This change is in some cases very essential! This should be documented, or much better add an aditional parameter (flag of BinaryToString) to the function. Up to Autoit v3.3.12.1 worked fine, since v3,3,14.1 give wrong results. Example: string: "0xFFD8FFE000104A464946" ......JFIF v3.3.12.1: FFD8FFE000104A464946 correct v3.3.14.1: EFBFBDEF0104A464946 confusing ! or with an longer string long string: 3F3F3F3F0010..... and this is a wrong JPG-file
  3. a recent post mentioned UTF-8 and encoded strings. I have the need to go this way, deliberately. This is to encode Hebrew into a barcode, where the application only supports plain ANSI. Barcode will render correctly with escaped hex values. Example: $string = "אין כמו הבית" ; "no place like home" in Hebrew. ConsoleWrite( StringToBinary($string,4) & @CRLF ) ; returns ; 0xD790D799D79F20D79BD79ED79520D794D791D799D7AA This is close, but I need this in individually encoded chars. Like this: \xD7\x90\xD7\x99\xD7\x9F\x20\xD7\x9B\xD7\x9E\xD7\x95\x20\xD7\x94\xD7\x91\xD7\x99\xD7\xAA I probably miss something obvious. But is there a function to convert string directly into this output, or something to convert internal hex to escaped format ?
×
×
  • Create New...