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

232

    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. Alle 15 oli

      Arvasi että lapsi asialla hallin palossa. Surullista. Mutta jos osaa/kykenee käyttää tulentekovehkeitä niin pitää osata
      Vimpeli
      40
      1380
    2. Mikä on kaivattusi ihanin ja ärsyttävin piirre?

      Ja onko hän mies, nainen ja muun sukupuolinen? Mies. Huomaavaisuus. Kiireisyys. Joskus voi rentoutuakin.
      Ikävä
      98
      1335
    3. Riikka Purra: työttömät tulee velvoittaa töihin

      Purra panisi työttömät tulevaisuudessa työskentelemään sosiaaliturvan saamiseksi, koska työllisyysaste ei muuten näytä l
      Maailman menoa
      289
      1225
    4. Onko kaivattusi yllättänyt sinut?

      Piditkö häntä toisenlaisena ihmisenä?
      Ikävä
      109
      1095
    5. Mitä on eilen sattunut?

      Mitästä oli eilen illalla kylällä sattunut?
      Suomussalmi
      19
      1031
    6. Milloin tapasit kaivattusi

      ensimmäistä kertaa? 💸
      Ikävä
      64
      1015
    7. Oletko mokannut

      Kaivattusi suhteen koskaan?
      Ikävä
      71
      1012
    8. Näin Ellen Jokikunnaksen Ralph-poikaa suojellaan julkisuudelta - Katso tuoreet kuvat Italiasta!

      Ellen Jokikunnas ja Jari Rask ovat Ralph-poikansa kanssa kakkoskodissa Italiassa. Mukana on myös Unelmia Italiassa -kuva
      Suomalaiset julkkikset
      16
      1009
    9. Heh, persut = vassarit = 10,0 %

      Minja tuli nyt jo Riikan rinnalle, sitten alkaa tekemään kaulaa. Molemmilta kympin arvoinen suoritus! https://www.hs.f
      Maailman menoa
      176
      868
    10. Vihdoinkin lavatansseja tv:ssä - Juhannuksena tanssitaan, bändeinä Yölintu ja Komiat!

      Jes, vihdoinkin lavatansseja taas televisiossa! Keskikesän juhlaa vietetään tänä juhannuksena Tuuloksen Kapakanmäellä ju
      Tanssi
      17
      833
    Aihe