Vihje: UTF-8 ja vanhat Delphi -versiot

Delphiguru

Jos käytät vanhempaa Delphiä ( esim. Delphi 5, Delphi 4, Delphi 3, Delphi 2, ehkä myös Delphi 6 ) ja tarvitset muunnosta UNICODE UTF-8 ja ANSI String ja TStrings tai TStringlist -tyyppien välillä, katsopa tänne:

http://tinyurl.com/UTF8-Delphi

tai

http://preview.tinyurl.com/UTF8-Delphi

JOS tinyurl -linkki vanhenee käytön puutteen takia, koko URL on:

http://www.koders.com/delphi/fid77D937B228CC8CFB3D81DCAD3BB58DA174055686.aspx

UTF-8 hallintaan !

ps.

kannattaa määritellä ko. Unitin alkuun:

type

UTF8String = type AnsiString;

2

234

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Delphiguru

      vielä kannattaa muokata unitin alkuosa tällaiseksi:

      unit UTF8;

      {-----------------------------------------------------------------------------
      Unit Name: UTF8
      extracted from LibXmlParser
      Author: Stefan Heymann ([email protected])
      Purpose: UTF8 conversion routines (those included in Kylix don't work)
      Version: v. 1.0
      Licence: "Destructor.de Source code Licence" (DSL)

      The official site to get this parser is http://www.destructor.de/

      Usage and Distribution of this Source Code is ruled by the
      "Destructor.de Source code Licence" (DSL) which comes with this file or
      can be downloaded at http://www.destructor.de/

      IN SHORT: Usage and distribution of this source code is free.
      You use it completely on your own risk

      -----------------------------------------------------------------------------}

      interface
      uses
      Classes;

      type
      UTF8String = type AnsiString;

      function Utf8ToAnsi(Source: UTF8String; UnknownChar: char = ' '): AnsiString;
      function AnsiToUtf8(Source: AnsiString): UTF8String;

      procedure ConvertStringList_UTF8ToAnsi(SL:TStrings);
      procedure ConvertStringList_AnsiToUTF8(SL:TStrings);

      implementation

      procedure ConvertStringList_UTF8ToAnsi(SL:TStrings);
      var
      i : Integer;

      begin
      for i := 0 to SL.Count-1 do begin
      SL[i] := UTF8ToAnsi(SL[i]);
      end;
      end;

      procedure ConvertStringList_AnsiToUTF8(SL:TStrings);
      var
      i : Integer;

      begin
      for i := 0 to SL.Count-1 do begin
      SL[i] := AnsiToUTF8(SL[i]);
      end;
      end;

      const
      // --- Character Translation Table for Unicode Win-1252


      //----- muokkausten loppu -----

      • Delphiguru

        .. sekä muuttaa myös myöhemmin koodissa vastaavat 2 funktiomäärittelyä:

        function AnsiToUtf8(Source: AnsiString): UTF8String;
        (* Converts the given Windows ANSI (Win1252) String to UTF-8. *)

        SEKÄ MYÖS:

        function Utf8ToAnsi(Source: UTF8String; UnknownChar: char = ' '): AnsiString;
        (* Converts the given UTF-8 String to Windows ANSI (Win-1252).
        If a character can not be converted, the "UnknownChar" is inserted. *)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Koko familia taas lehdissä jauhamassa vanhoja asioitaan

      Nyt menee familialla lujaa. Martina ja äiti MeNaisissa (taas) ja Esko IS:ssa. Kuinkakohan monta kymmentä kertaa nuo sam
      Kotimaiset julkkisjuorut
      352
      1397
    2. Minkä ikäistä ikävöit?

      Minkä ikäinen hän on ja mitä hän sinulle merkitsee/merkitsi?
      Ikävä
      74
      1375
    3. Teemu Keskisarja (ps) loisti- ja hurmasi MTV:n tentissä.

      https://www.mtvuutiset.fi/artikkeli/kommentti-keskisarja-sekoitti-pakan-suomiareenan-puheenjohtajatentissa/9180380 Kuten
      Maailman menoa
      306
      1137
    4. Taas syytöntä ja rehellisintä rangaistiin

      Ja vielä 13 000 euroa kaupungin oikeudenkäyntikuluja maksuun. Lisää tällaisia päätöksiä.😀
      Haapavesi
      46
      1067
    5. Heh, Irvi-Riikka vie duunareilta nyt arkipyhätkin

      Voihan saksilla näköjään leikellä kalenteriakin. Irvi-Riikalla ne osuivat arkipyhiin. Että sellainen duunaripuolue 😆
      Maailman menoa
      231
      884
    6. Aika pieni se on

      Joku sanoo että matala on suihku. Säätöä tarviaa nyt ruisku, että se ruiskuaa korkeudelle valopylvään Näin saamme näht
      Haapavesi
      30
      879
    7. vinkki miehille

      Jos on ollut erimielisyyksiä ja sun käytös on satuttanut naisya, et voi palata takaisin kevyesti niin kuin mitään ei oli
      Ikävä
      163
      868
    8. Kiitos siitä

      Kiitos siitä hahmosta jonka loit, ja jonka sain tuntea, ja kutsua ystäväksi. Se oli hyvä tyyppi ja siihen oli helppo rak
      Ikävä
      40
      825
    9. Ilouutinen: Teini-ikään ehtinyt Osmo Peltola TV:ssä! Tätä tiedossa Peltsi-isän kanssa tällä kertaa

      Mikä upea parivaljakko: Peltsi-isä ja Osmo-poika. Peltsin toisen luonto starttaa televisiossa ja mukana muutamassa jakso
      Tv-sarjat
      20
      807
    10. Pelekäätkönä mua?

      Älä turhaan. 😘 Unohdetaan säät ja ilmat ja muut turhat lätinät tai jos välttämättä haluat niistä keskustella, niin te
      Ikävä
      42
      794
    Aihe