Ékezetek elkódolódnak
2013-08-10T11:47:12+02:00
2013-08-10T16:45:09+02:00
2022-08-08T03:05:30+02:00
padro
Sziasztok!
Meglehetősen sok keresgélés után fordulok hozzátok, mert nem találtam megoldást.
C#, WinForm alkalmazásból írok csv file-t. Az ékezetes karakterek olvashatatlanná válnak.
A megjelenítendő szöveg SQL táblából jön, ott még olvasható. A programban való léptetésnél is helyesen látszik. Kiírva viszont már rossz.
Ha a Management Studio segítségével vágólapra teszem a szöveget, akkor Excelbe olvashatóan lehet beilleszteni.
Érdekesség még, ha közvetlen Excel-be ír az alkalmazás, akkor is rendben vannak a karakterek, de most roham-munka van és nincs időm az elég terjedelmes Excel tábla írás kódolásához.
Kérlek segítsetek, ha tudtok, mert sok munka lenne a kimenetekben végig cserélni a karaktereket.
Mutasd a teljes hozzászólást!
Ez szinte biztosan utf8, az exceled csak azért nem ismeri fel, mert nincs előtte BOM.
Mutasd a teljes hozzászólást!

  • Namost ha olvastad volna a Harry Pottert, akkor tudnád, hogy Voldemort szerint nincs jó és rossz, csak különféle kódolások vannak, mint pl cp852, win1250, iso-8859-2, utf-8...

    Egy hex-viewer nevű szoftver-eszközzel kellene belenézni, és megállapítani, hogy milyen kódolás van a fájlban.

    Azután belenézni egy olyan fájlba is, ami 'jó', és akkor azt is megtudod, hogy milyen lenne a kívánatos kódolás, ebből már könnyebb lenne nyomozni.

    Kezdetnek olvasd el ezt (az egészet, de a végén a táblázatot különösen): Ékezetes FAQ webművészek számára
    Mutasd a teljes hozzászólást!
  • Bocsi, de sok a szöveg, kevés a kód.
    Milyen SQL-ról van szó, Collation mire van állítva, miként paszírozod a sorokat csv-be?
    S egyáltalán miért csv-be?
    Mikor közvetlenül is véshetnéd szvsz egy új munkalapra.

    Pl. - Working with MS Excel(xls / xlsx) Using MDAC and Oledb
    Mutasd a teljes hozzászólást!
  • MSSQL 2012; Win7; Office 2010.
    Mivel nemcsak az onnan származóval, hanem bármilyen szöveggel reprodukálható az eredmény itt egy kódrészlet:

    osztlist.Add("Árvíztűrő tükörfúrógép"); File.WriteAllLines(Application.StartupPath + "\out.csv", osztlist);

    Az eredmény majdnem lemaradt:
    Árvíztűrő tükörfúrógép


    Időszűkében vagyok (pl. ma sem kéne dolgoznom...), ezért a csv. Már többször is írtam Excel munkalapra, de a futás is jóval lassabb, és több időt igényel a programozása. A linken lévő oldalt majd jobban átnézem, ha már lesz rá időm. Köszönöm.
    Mutasd a teljes hozzászólást!
  • Ez szinte biztosan utf8, az exceled csak azért nem ismeri fel, mert nincs előtte BOM.
    Mutasd a teljes hozzászólást!
  • Segítségeddel egy gyors, áthidaló megoldáshoz jutottam.
    Kódból nem tudom, hogyan lehetne ezt a szépséges, 3 byte-os szekvenciát úgy beszúrnom, hogy a file-ban ne látszódjék és működjön is, de egy favágó módszerrel mégis gyors eredményt értem el.
    Az elkészült csv-t szövegszerkesztővel megnyitva, az első sorba beszúrtam a '\xEF\xBB\xBF' karaktersorozatot. Az Excel így már olvashatóan nyitja meg a csv-t. Csak törölnöm kell az első sort és onnan minden rendben van. Mégis gyorsabb, mint a karaktercsere ismételgetése.
    Egyébként a fenti megoldás a linkelt oldal XML-es tippjével is működik, azaz, ha ezt szúrom be: <?xml version="1.0" encoding="iso-8859-2"?>
    A végleges verzió (ha kapok rá időt) természetesen az Excel közvetlen írása lesz.
    Köszönöm a segítségeteket!
    Mutasd a teljes hozzászólást!
  • > Kódból nem tudom, hogyan lehetne ezt a szépséges, 3 byte-os szekvenciát úgy beszúrnom, hogy a file-ban ne látszódjék és működjön is

    Olyan nincs, hogy valami benne is van a fájlban, meg nincs is benne... egyszerűen a fájl legelejére kell írni ezt a három bájtot, nagyon valószínű, hogy C#-ban is van ilyen lehetőség.

    > Egyébként a fenti megoldás a linkelt oldal XML-es tippjével is működik, azaz, ha ezt szúrom be: <?xml version="1.0" encoding="iso-8859-2"?>

    Ezt most nem egészen értem, a CSV nem nem XML, és az UTF8 sem iso-8859-2.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd