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

312

    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. "Miko Bergbom, miksi euron bensa maksaa kaksi euroa?"

      Valtakunnan suurin kaupallinen porvarimediakin kyselee nyt miksi perussuomalaisset ovat rikkoneet tärkeimmän vaalilupauk
      Maailman menoa
      44
      5375
    2. Maahanmuuttajien vaikutus Suomen valtiontalouteen positiivinen

      Maahanmuuttajat maksavat enemmän tuloveroja kuin saavat tulonsiirtoja. Eroavat persuista tässä suhteessa. Persuista o
      Maailman menoa
      417
      5059
    3. Olen Päivi Räsäsen puolella

      En oe uskovainen enkä kristillisdemograattikaan mutta onhan tuo naurettavaa laittaa Päivi syylliseksi omasta mielipit
      Maailman menoa
      559
      3389
    4. SDP: "On hyvä että bensiinin hinta nousee"

      Suurin oppositiopuolue SDP on mielissään siitä, että bensan hinta nousee suomalaisille. https://www.iltalehti.fi/polit
      Maailman menoa
      73
      2879
    5. Ukrainan tiedustelun huippupotti - Iski ensin yhteen satamaan, sitten toiseen

      Ukrainan tiedustelupalvelu SBU kertoo johtaneensa operaatiota, jossa on isketty drooneilla Venäjän tärkeimpiin satamiin
      Maailman menoa
      132
      2720
    6. Nuhteettomia edustajia

      Korkein oikeus tuomitsi Päivi Räsäsen kiihottamisesta kansanryhmää vastaan Kansanedustaja Päivi Räsästä (kd.) vastaan no
      Politiikka
      261
      2690
    7. Ulkomaalaistaustaiset tulevat kalliiksi yhteiskunnalle.

      Selvitys: Ulkomaalaistaustaiset saivat selvästi enemmän työttömyysetuuksia ja toimeentulotukea kuin suomalaistaustaiset.
      Maailman menoa
      201
      2646
    8. "Mieheksi ja naiseksi hän heidät loi."

      Räsäsen tuomio on iso harppaus woke-valtioksi. – Tässä maassa on nyt selvästi kiellettyjä sanoja ja ajatusrikoksia. –
      Maailman menoa
      93
      1784
    9. Päivi Räsänen tuomittiin rikoksesta...

      ...kiihottamisesta kansanryhmää vastaan. Tuskin tajuaa silti vieläkään, että raamattu ei ole lakikirja. https://yle.fi/a
      Maailman menoa
      656
      1714
    10. Huumeliika mellastaa Suomussalmella

      Varastanut S-marketissa, jopa kolme kertaa päivässä. Päätekijä pitänyt kuumeorjanaan naistaan useita vuosia. Mies potki
      Suomussalmi
      18
      1600
    Aihe