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

293

    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. Kuka tekee näitä aloituksia

      jotka aina ovat tällaisia.... Nämä on jonkun saman ihmisen käsialaa, joka paukuttaa tänne loputtomasti ketjuja, joissa
      Ikävä
      59
      5322
    2. Persujen kannatusromahduksen syynä bensan ja kaljan hinnan nostot

      Marinin aikaan bensalitra 1,3e ja laatikon Sandelsia sai Lidlistaä 22 eurolla. Nyt hinnat ovat nousseet noin 50 prosent
      Maailman menoa
      254
      3582
    3. Juhana Vartiainen(ex-sd): Köyhien pitää tehdä jotain elämälleen säilyttääkseen tukensa

      Juhana Vartiainen ehdottaa Suomeen ”Tanskan mallia”, jossa sosiaaliturvaa saadakseen pitäisi hakea ensisijaisesti etuuks
      Maailman menoa
      286
      3484
    4. Oot mahtava tyyppi

      En tiedä luetko palstaa. Koitan siitä huolimatta. Oot mun mielestä tosi erityinen tyyppi. Nopeesti taisin ihastua. Jot
      Ikävä
      40
      3203
    5. Miksi tunnustukselliset muslimit saapuvat länteen?

      Onko koskaan kysytty, että miksi islamilaisesta maailmasta tuleva tunnustuksellinen muslimi tarvitsisi turvapaikkaa väär
      Maailman menoa
      301
      2698
    6. Rydmanin nousu sote-ministeriksi on kauttaaltaan irvokas

      Mutta samalla se oli ainut todennäköinen lopputulema. Se myös alleviivaa sitä, mistä tällä hallituksella ja aivan erityi
      Maailman menoa
      317
      1988
    7. Miksi vihereät ja vasemmisto haluavat tuhota tämän maan?

      He halusivat, että kannabis tulisi lailliseksi? - eikö kylliksi nuoria tuhota jo nyt huumeilla? - kannabis tuhosi minun
      Maailman menoa
      66
      1980
    8. En ymmärrä näitä SDP:n ja muun vasemmiston kannattajia

      Eivätkö ihmiset tiedä, että Suomen ongelmat johtuvat vasemmistolaisesta yhteiskuntamallista? Suomessa on ollut vasemmis
      Maailman menoa
      143
      1839
    9. Sofia servasi Pikku-Villen suvereenisti

      – Ihanko tosissaan tuleva sosiaali- ja terveysministeri hyökkää oppositiopuolueen puheenjohtajaa vastaan siksi, että täm
      Maailman menoa
      37
      1465
    10. Harmi, etten koskaan saa tietää

      Olinko vai olenko sun kaivattusi, Jii…
      Ikävä
      120
      1205
    Aihe