Search the Community
Showing results for tags 'utf8'.
-
Hi friends, I'm using json.au3 to register some data in my server, everything work fine except the data that i send in utf8 format like names saved as ????? . i think something mess with inetget cause this problem can you help me please? $sAdditionalData = "secret_key=" & $secret_key_verify & "&slm_action=slm_check&license_key=" & $license_key&"&first_name="&$first_name $data = _INetGetSource($sDomain&'/?'&$sAdditionalData) $object = json_decode($data) Json_Dump($data) $response = json_get($object, '.first_name')
-
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:
- 3 replies
-
- stdoutread
- unicode
-
(and 1 more)
Tagged with:
-
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
-
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 ?