Ahogy a téma mondja, szeretnék stringeket küldeni az ablakoknak. A probléma, hogy ha unicode karakterek is vannak benne, akkor az
xdotool
mindjárt az első ilyen karakternél elszáll
Invalid multi-byte sequence encountered
xdo_enter_text_window reported an error
hibával - amire az egyetlen találat ez az issue (és ahol megtaláltam az év leghasznavehetetlenebb hozzászólását) - az
xvkbd
pedig garbage karaktereket jelenít meg helyette - amire csak workaroundot találtam, hogy
echo "$VALAMI" | iconv -f UFT8 -t UTF16 | xvkbd -file -
, de akkor odavág két garbage karaktert az elejére; Persze levághatom egy
cut -c 3-
paranccsal az
iconv
és az
xvkbd
között, de gondolom okkal kerül oda az a két karakter, azonfelül a hungarumlaut (őŐűŰ) karakterek helyett így is "Q" jelenik meg.
Van valakinek ötlete, hogy hogy lehet ezek közül valamelyiket belőni rendesen? Vagy ha ajánl valami más tool, az elől sem zárkózom el...
- 540 megtekintés
Hozzászólások
Az xdotoolhoz nem ertek, de a 2 garbage karakter a BOM. Ennek az a funkcioja, hogy a file (vagy itt string, de ezt az iconv nem tudja) hordozasakor rajojjon, hogy little endian vagy big endian az architektura.
--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin
- A hozzászóláshoz be kell jelentkezni
Értem, akkor itt strippelhető. A hungarumlaut => Q-ra nincs tipped?
- A hozzászóláshoz be kell jelentkezni
Ha jol ertem, megoldodott, ugyhogy csak az utokor kedveert:
Az iconv tud olyat is, hogy hasonlo karakterekre konvertal, ez a transliteration. Lehet, hogy a parancssoros iconv-odban ez alapbol be van kapcsolva.
A PHP-s iconv helpjebol:
If you append the string //TRANSLIT to out_charset transliteration is activated. This means that when a character can't be represented in the target charset, it can be approximated through one or several similarly looking characters. If you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded. Otherwise, E_NOTICE is generated and the function will return FALSE.
Caution
If and how //TRANSLIT works exactly depends on the system's iconv() implementation (cf. ICONV_IMPL). Some implementations are known to ignore //TRANSLIT, so the conversion is likely to fail for characters which are illegal for the out_charset.
(Az UFT8 ugye csak a hupon eliras?)
--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin
- A hozzászóláshoz be kell jelentkezni
Thx, ezt azért majd megnézem.
> (Az UFT8 ugye csak a hupon eliras?)
Nem, ezt egészen konkrétan maga az
xvkbd
szerzője írta. (Az
-utf
kapcsoló nem segített, az
-utf16
-ot meg csak most találtam meg, de már megoldódott.)
Sz*rk: Ja, hogy "UFT"... Igen, az csak itt elírás. :/
- A hozzászóláshoz be kell jelentkezni
Nálam az xdotool (3.20160805.1) is működik utf-8 karakterekkel, de ha megengedhető a vágólap használata, akkor megpróbálhatod ezt is:
echo "szöveg" | xclip -in -selection clipboard && xdotool key ctrl+v
- A hozzászóláshoz be kell jelentkezni
/o\ Nem látom a fától az erdőt; miért nem jutott a vágólap az eszembe?! Köszönöm a segítséget.
- A hozzászóláshoz be kell jelentkezni
Elfelejtetted elárulni, hogy mi az a parancs, ami a fenti hibát produkálja.
"xdotool type árvíztűrő" nekem működik.
- A hozzászóláshoz be kell jelentkezni
Mind az
xdotool
, mind az
xvkbd
ezt csinálja:
xdotool type --window "$WINID" "$TEXT"
xvkbd -window "$WINID" -type "$TEXT"
De croach kollega workaroundja perfekt működik.
- A hozzászóláshoz be kell jelentkezni