Sziasztok.
Svn commitról küldenék mailt egy bash scripttel.
Úgy néz ki a dolog, hogy a levél tartalmát összeállítom egy fájlba, amit a mail paranccsal küldök el.
Az ékezetes betűk helyett viszont ?\195?\161 és egyebek vannak, a date parancs kimenete pedig nem magyar locale szerinti. Az env szerint minden oké, és az svn-look log parancs kimenete is jó.
Csak a fájlba kerül rosszul.
Ötletem sincs, hogy mitől...
- 4254 megtekintés
Hozzászólások
Ha jól látom, az rfc2822 szerint e-mailben 0x7f-ig lehet karakterkódokat küldeni, azaz 7 bitesen. A többit valahogyan kódolni kell.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Nem ezzel van a gond.
Már annak a fájlnak a tartalma is rossz, amit utána elküldök. Tehát még a mail parancs előtt elromlik.
Pl. echo "leírás" > tmp.message | cat tmp.message kimenete: le?\195?\173r?\195?\161s
A date kimenete pedig: Mon Oct 21 21:12:06 CEST 2013
- rezso -
- A hozzászóláshoz be kell jelentkezni
Érdekes. Ehhez ugyan nem értek, de valahogy így indulnék el:
set | grep -E 'LC|LANG'
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ezzel találtam egy subversion nevű fájlt az /etc/bash_completion alatt, azt kiszedtem. Talán így jó lesz.
(Abban volt egy rész, ami LC_ALL=C, LANG=C beállítást használt, igaz, az az svn info volt, amit nem használok, de lehet, hogy az zavar be. Majd most kiderül.)
- rezso -
- A hozzászóláshoz be kell jelentkezni
A locale mit mond?
És az stty -a?
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni
root@localhost:~# locale
LANG=hu_HU.UTF-8
LANGUAGE=
LC_CTYPE="hu_HU.UTF-8"
LC_NUMERIC="hu_HU.UTF-8"
LC_TIME="hu_HU.UTF-8"
LC_COLLATE="hu_HU.UTF-8"
LC_MONETARY="hu_HU.UTF-8"
LC_MESSAGES="hu_HU.UTF-8"
LC_PAPER="hu_HU.UTF-8"
LC_NAME="hu_HU.UTF-8"
LC_ADDRESS="hu_HU.UTF-8"
LC_TELEPHONE="hu_HU.UTF-8"
LC_MEASUREMENT="hu_HU.UTF-8"
LC_IDENTIFICATION="hu_HU.UTF-8"
LC_ALL=
root@localhost:~# stty -a
speed 38400 baud; rows 41; columns 168; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
- rezso -
- A hozzászóláshoz be kell jelentkezni
Ne ettől kezdve tényleg érdekes. Mert az első tippem az lett volna, hogy nem létező nyelv+karakterkód páros van beállítva, de akkor a locale három soros hibát ad, a második meg, hogy a terminál beállítások közt van valami nagyon elkefélve, de azok is nagyjából megegyeznek az enyémekkel. (feltéve, hogy nálad is linux van)
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni
Igen, debian 7.1 fut a rendszeren.
A locale -a még hoz C és POSIX locale-kat, csak nem tudom, honnan.
- rezso -
- A hozzászóláshoz be kell jelentkezni
A locale mit mond, ha a szkriptedbol inditod?
- A hozzászóláshoz be kell jelentkezni
http://hup.hu/node/127794#comment-1656571 ennek fényében szerintem nincs jelentősége.
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni