Автор Тема: Кирилица и проблем свързан с четене на български  (Прочетена 22892 пъти)

remotexx

  • Напреднали
  • *****
  • Публикации: 3236
    • Профил
Това е страничен ефект, че със слагането пак на същия скапан шрифт се чете, но това не оправя проблема, че кодировката си остава нестандартна - нали после на който и да го прати тоя файл няма да може да го прочете т.е. човекът трябва да си оправи кодировката и най-добре е да го запише в УТФ8
Само да уточня че при подобни прецакани шрифтове - само с копиране и поставяне няма да мине номера

Ако не беше прецакан шрифта - повечето програми щяха да открият автоматично езика (гарантирано за кирилица) или поне със твърдо задаване на кодова таблица 1251 щеше да го прочете правилно, но човека каза че и така не става т.е. бас ловя че е от "прецакан шрифт"

айде ако не му се слага Щирлиц и wine
може да пробва и оттук онлайн, но за повече от един файл - Щирлиц е класика
http://2cyr.com//decode/index.php?lang=en

П.П. инак това си е класически трик още има хора му се хващат - който иска да разбере защо така, моля - нека се образова
http://web.archive.org/web/20080221162319/http://injinera.bgplus.com/programi/programi.htm#font_stef
http://web.archive.org/web/20080219205416/http://injinera.bgplus.com/programi/fontove/fontove.htm

Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 3236
    • Профил
Само за пробата това изпълнено от конзола какво прави при теб? Няма нужда от root, само смени имената на файловете с подходящи и кажи после изходния (т.е. конвертирания) дали се чете нормално на кирилица.
Код
GeSHi (Bash):
  1. iconv -f utf-8 -t latin1 < in.txt | iconv -f cp1251 -t utf-8 > out.txt
или
Код
GeSHi (Bash):
  1. iconv -f utf-8 -t latin1 < Praha\ Chez\ Republik\ Prace.txt | iconv -f cp1251 -t utf-8 > Praha\ Chez\ Republik\ Prace_out.txt

т.е. това първо го връща на правилното място от utf8 към (western/latin1) пък после го лъже че вече е cp1251 и го прави utf8

Ако стане моля някой "баш майстор" да даде едноредов скрипт дето го изпълнява рекурсивно върху всички *.txt в поддиректориите и си готов.

Малка редакция/корекция:
П.П. Сега видях че колегата е качил примерен файл - командата работи само трябва да се махне BOM маркера т.е. EF BB C3 в началото т.е. има малка промяна за да работи трябва да стане така
Код
GeSHi (Bash):
  1. iconv -f utf-8 -t latin1//TRANSLIT < Praha\ Chez\ Republik\ Prace.txt | iconv -f cp1251 -t utf-8 > Praha\ Chez\ Republik\ Prace_out.txt
...предпочитам да не презаписвам оригинален файл за в сл. че нещо се омаже желателно е да се направи резервно копие или архив първо!
« Последна редакция: Dec 26, 2013, 06:54 от remotexx »
Активен

Gangosan

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Това е положението http://i.imgur.com/Fa9vHif.png Създаде още един ама празен файл http://i.imgur.com/Wx4FDRg.png
« Последна редакция: Dec 26, 2013, 09:32 от Gangosan »
Активен

Acho

  • Напреднали
  • *****
  • Публикации: 5282
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Никак не е розово.
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

Gangosan

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Geany ми чете всъчко вече  ;D  http://i.imgur.com/TujAnPv.png
но либреофиса не иска
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 3236
    • Профил
Колега точно затова "решението" с "прецакването" на точно същия шрифт не е никакво решение защото:
1. трябва да си го носите навсякъде с вас
2. Copy / Paste и/ли отваряне с друга програма не решава проблема (ако няма същия  шрифт)
3. Трябва да го инсталирате на всеки компютър с който работите и да му "прецакате" шрифта/овете
4. Трябва да го давате на всички на които пратите такъв файйл и да "прецакате" и техните шрифтове.

А решението което дадох работи, Вие просто не можете да си напишете името на файла правилно - защо махате наклонените черти \ пред интервалите, естествено че така няма да стане. Има няколко варианта да проработи:
1. запазвате наклонените черти тип '\' горе ляво - долу дясно. Ако ид а изчезнат при copy/paste вие пак си ги напишете/сложете или
2. Не ползвайте copy/paste особ. ако изчезват чертите ами си напишете имената на файловете сам с ползване на [Tab] за дописване - така ще ви ги попълни правилно
3. заграждайте имената на файловете в кавички - единични или двойни: тогава няма нужда от наклонени черти.
т.е. вяско едно от тези работи  - изпробвано

Код
GeSHi (Bash):
  1. iconv -f utf-8 -t latin1//TRANSLIT < 'Praha Chez Republik Prace.txt' | iconv -f cp1251 -t utf-8 > 'Praha Chez Republik Prace_out.txt'
  2. iconv -f utf-8 -t latin1//TRANSLIT < "Praha Chez Republik Prace.txt" | iconv -f cp1251 -t utf-8 > "Praha Chez Republik Prace_out.txt"
  3. iconv -f utf-8 -t latin1//TRANSLIT < Praha\ Chez\ Republik\ Prace.txt | iconv -f cp1251 -t utf-8 > Praha\ Chez\ Republik\ Prace_out.txt

П.П. За хора като Вас, на Вие с компютрите препоръчвам никога ама НИКОГА да не се слагат интервали в имената на файловете и препоръчително е буквите от името на файла да са само на латиница (добре че не ви се е налагало да работите с кирилизатори които и това прецакват  ;D всеки който е свалял копие на читанката знае за какво иде реч - ако някой има желание мога да дам команда дето и това оправя)

П.П.П. При мен това работи http://2cyr.com/decode/?lang=en
когато копирам текста UTF8 и ползвам Select encoding [Autodetect recomended] правилно ми го конвертира като Expert: source encoding: 1251 displayed as: 1252
« Последна редакция: Dec 26, 2013, 15:36 от remotexx »
Активен

Gangosan

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Код:
gangosan@Gangosan:~$ iconv -f utf-8 -t latin1//TRANSLIT < 'Praha Chez Republik Prace.txt' | iconv -f cp1251 -t utf-8 > 'Praha Chez Republik Prace_out.txt'
iconv: illegal input sequence at position 82
gangosan@Gangosan:~$ iconv -f utf-8 -t latin1//TRANSLIT < "Praha Chez Republik Prace.txt" | iconv -f cp1251 -t utf-8 > "Praha Chez Republik Prace_out.txt"
iconv: illegal input sequence at position 82
gangosan@Gangosan:~$ iconv -f utf-8 -t latin1//TRANSLIT < Praha\ Chez\ Republik\ Prace.txt | iconv -f cp1251 -t utf-8 > Praha\ Chez\ Republik\ Prace_out.txt
iconv: illegal input sequence at position 82
gangosan@Gangosan:~$
Благодаря че искате да ми помогнете но ми идва сложно и не мога да се управя .Създаде се файл с име Praha Chez Republik Prace_out но в него има много малко информация и е нечетлива ето файла който се създаде качих го http://www.filedropper.com/prahachezrepublikpraceout
« Последна редакция: Dec 26, 2013, 16:44 от Gangosan »
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 3236
    • Профил
...интересно а при мен работи (на 2 различни машини изпробвано Fedora20 и Debian 7.0)
явно е от липса и/ли неправилно конфигурирани локали или от разминаване във версиите на iconv - сигурен ли си че имаш всички необходими локали: cp1252/WINDOWS1252 и cp1251 инсталирани и правилно конфигурирани?

Оттук насетне имаме два варианта
1. лесният: http://2cyr.com/decode/?lang=en
и файл по файл или
2. интересният (ако искаш да задълбаеш и да разберем що така се получава): да го направиш на стъпки та да видим що така
 
Код
GeSHi (Bash):
  1. iconv --verbose -f UTF-8 -t WINDOWS-1252//TRANSLIT --output=out1.txt Praha\ Chez\ Republik\ Prace.txt
дори и само след тази стъпка би трябвалода се чете файла (kate, kwrite language detection decides cp1251)
но лично аз препоръчвам да се конвертира до UTF8 за да се избегнат подобни проблеми за в бъдеще
 
Код
GeSHi (Bash):
  1. iconv --verbose -f WINDOWS-1251 -t UTF-8 --output=Praha\ Chez\ Republik\ Prace_out.txt  out1.txt

и пусни резултатите от двете команди поотделно тука - да видим коя точно се дъни, къде и защо?
Активен

Gangosan

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Здравейте така го преведе но не цялото http://i.imgur.com/90OCyHU.png
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 3236
    • Профил
Явно имаш проблеми с локала. Дай изхода от следните команди
Код
GeSHi (Bash):
  1. locale -a
  2. iconv --list | grep WINDOWS-125

Можеш ли да архивираш файла (zip, rar  и т.п.) и да качиш архива - да не би случайно да се променя кодировката при трансфер в чист текст, защото при мен работи с iconv (Debian EGLIBC 2.17-97) 2.17

освен това пробвай и по този начин какво ще стане
Код
GeSHi (Bash):
  1. iconv --verbose -f UTF-8 -t WINDOWS-1252//TRANSLIT//IGNORE --output=out1.txt Praha\ Chez\ Republik\ Prace.txt
Активен

Gangosan

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Код:
gangosan@Gangosan:~$ iconv --verbose -f UTF-8 -t WINDOWS-1252//TRANSLIT//IGNORE --output=out1.txt Praha\ Chez\ Republik\ Prace.txt
Praha Chez Republik Prace.txt:
iconv: illegal input sequence at position 82
gangosan@Gangosan:~$











Код:
gangosan@Gangosan:~$ locale -a
C
C.UTF-8
en_US.utf8
POSIX
gangosan@Gangosan:~$ iconv --list | grep WINDOWS-125
WINDOWS-1250//
WINDOWS-1251//
WINDOWS-1252//
WINDOWS-1253//
WINDOWS-1254//
WINDOWS-1255//
WINDOWS-1256//
WINDOWS-1257//
WINDOWS-1258//
gangosan@Gangosan:~$







Ето тук го качих http://www.filedropper.com/prahachezrepublikpracetxttar
« Последна редакция: Dec 27, 2013, 22:44 от Gangosan »
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 3236
    • Профил
Това вече е нещо друго - ето защо никога не качвайте файлове с чист текст неархивирани: така де нямат нито контролна сума а и не се знае през колко конвертирания ще минат по пътя  ;)
Ако беше качил направо архив щеше да работи при тебе още от раз.

Обяснениеот е много просто  първия тесктов файл който качи за сваляне наистина беше cp1252 кодирана в UTF-8 което (сега си го обяснявам) е станало най-вероятно при Copy/Paste или при качване
За съжаление препратката вече не работи (има някакво филмче вече там)
А в действителност при тебе файла е бил ISO 8859-15 което някак си при прехвърлянето е станало UTF-8

Значи файла с който работих аз е следния - отваряш този с kwrite и избираш Tools.Encoding.Unicode.UTF-8 може да се оплаче но ще го конвертира т.е. аз работих с такъв файл и затова ми се получаваше..
 и после онези двете комнади ще си работят правилно (без значение дали на една стъпка или на две го правиш)

Малка редакция: Сигурен ли си че това е оригиналния файл от Уиндоуса (а не междинна версия след няколко опита за спасяване) защото този е съвсем различен повече прилича на ДОСовска кодова таблица (МИК или 866)?

Втора редакция: Значи установих какъв е проблема, но пак питам сигурен ли си, че това е оригиналния файл питам защото...
Една единствена буква не се е конвертирала правилно и това е 'н' в cp1251 или 'í' в cp1252
та последно пробвай тези команди - надявам се имаш инсталиран sed

ВНИМАНИЕ този път презаписват оригиналния файл (надявам се пазиш копие)
След първите 3 команди вече имаш файла който беше качил и върху който работих аз затова пак да попитам това ли е оригиналния?
Има един случай в който няма да сработи ако има дума дето завършва на 'н' точно преди нов ред ама не съм експерт на sed

Код
GeSHi (Bash):
  1. sed -i 's/\xc3\xc3/\xc3\xad\xc3/g' 'Praha Chez Republik Prace.txt'
  2. sed -i 's/\xc3\xc3/\xc3\xad\xc3/g' 'Praha Chez Republik Prace.txt'
  3. sed -ri 's/\xc3([\x20-\x7f])/\xc3\xad\1/g' 'Praha Chez Republik Prace.txt'
  4.  
  5. iconv --verbose -f UTF-8 -t WINDOWS-1252//TRANSLIT//IGNORE --output=out1.txt 'Praha Chez Republik Prace.txt'
  6. iconv --verbose -f WINDOWS-1251 -t UTF-8 --output=Praha\ Chez\ Republik\ Prace_out.txt  out1.txt
  7.  
« Последна редакция: Dec 28, 2013, 07:02 от remotexx »
Активен

Gangosan

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Тоя е оригиналния който ви давам но всъщност аз го запиусах с команда нев филе копи пасте саве ас
за да премахна телефонния номер и не е точно оригинала
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 3236
    • Профил
Ами архивирайте и пратете оригинален файл - аз няма само да преправям команди защото и поредният файл НЕ е оригинал.
Ако искате пратете друг файл без лична информация, но да има повечко текст - поне половин страница или повече, или ако искате пак същия поне махнете тел. номер и пр. лични данни с шестнадесетичен редактор напр. okteta за да не прецаквате допълнително кодировката.

Дотук успяхме и двата да ги декодираме, но втория по-трудно защото е кофти прецакан.
Покажете резултата от последните пет команди върху оригинала все пак... още ли ви дава грешки и какви?
ВИНАГИ правете резервно копие - архив преди подобни експерименти.
Активен

Gangosan

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Сега се създаде текст Без грешка се чете хиляди благодарности прикачвам 2та които се създадоха http://www.filedropper.com/gangosantar
out1.txt ми се чете другия не се чете
Активен