eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDodawanie BOM do pliku w kodowaniu UTF-7 - jak to zrobić?Dodawanie BOM do pliku w kodowaniu UTF-7 - jak to zrobić?
  • X-Received: by 10.140.109.9 with SMTP id k9mr12040qgf.17.1418289006983; Thu, 11 Dec
    2014 01:10:06 -0800 (PST)
    X-Received: by 10.140.109.9 with SMTP id k9mr12040qgf.17.1418289006983; Thu, 11 Dec
    2014 01:10:06 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    w8no6196701qac.0!news-out.google.com!r1ni49qat.1!nntp.google.com!s7no5705151qap
    .1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Thu, 11 Dec 2014 01:10:06 -0800 (PST)
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=197.231.221.211;
    posting-account=pyti1AoAAAAf66c003TUy10QAAnMWaKw
    NNTP-Posting-Host: 197.231.221.211
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <7...@g...com>
    Subject: Dodawanie BOM do pliku w kodowaniu UTF-7 - jak to zrobić?
    From: s...@o...pl
    Injection-Date: Thu, 11 Dec 2014 09:10:06 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:207178
    [ ukryj nagłówki ]

    Witam
    Piszę edytor tekstu i chcę by obsługiwał wszystkie wersje BOM (Byte Order Mark) ze
    specyfikacji Unicode. Jednak nie mogę nigdzie znaleść specyfikacji dotyczącej BOM dla
    UTF-7. Na unicode.org UTF-7 jest jedynie wzmiankowany w 2 dokumentach pdf i podane są
    4 możliwe kombinacje tego BOM. Na wikipedia.org jest nieco więcej i pisze tam, że
    przed kodowaniem w base64 do ostatniego bajtu w postaci 001111xx na ostatnich 2
    bitach dodaje się pierwsze 2 bity z pierwszego znaku. Problem w tym, że gdy doda się
    te 2 bity to nie uzyska się jednej z tych wymienionych 4 wartości czwartego bajtu. A
    jeśli się go zakoduje w base64 to wychodzą z tego 2 bajty a nie jeden (jeśli użyję
    dla kodowania base64 flagi QByteArray::OmitTrailingEquals co znaczy: Omits adding the
    padding equal signs at the end of the encoded data.).
    Dla przykładu:
    mam plik z taką jedną lnią:
    dfassdfas
    To po dodaniu 3bajtów stałych i czwartego zakodowanego w base64 bajtu 001111xx gdzie
    xx to 2 bity z pierwszego znaku w tekście. Uzyskuję poniższy tekst:
    +/vPQdfassdfas
    czyli szesnastkowo:
    2B 2F 76 50 51 64 66 61 73 73 64 66 61 73
    Jak widać zamiast 4 bajtu o dopuszczalnych wartościach 38 39 2B i 2F są 2 bajty 50
    51.

    Moje pytanie brzmi: Gdzie popełniam błąd?


    z góry dzięki za pomoc
    Szyk Cech

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: