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

279

    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. 6 kW saunan lämmityksestä kohta 10 euron lisämaksu / kerta

      Kokoomuslainen sähköyhtiöiden hallitsema Energiavirasto ehdottaa 5 kW:n rajaa, jonka ylittämisestä tulee lisämaksu. Tark
      Maailman menoa
      146
      5465
    2. Minja jytkyttää vas.liiton kannatusta ylöspäin

      Alkaa raavaat duunarimiehetkin palaamaan vasemmistoliiton kannattajiksi. Eduskunnassahan on vain kaksi työntekijöiden p
      Maailman menoa
      136
      3578
    3. "Mitä sä nainen tuot sitten pöytään" ?

      Jos mies provaidaa ja suojelee... Pitääkö miesten kysyä tuollaisia?
      Ikävä
      126
      3319
    4. Ekologinen kommunismi tulee voittamaan fossiilikapitalismin

      Kiina on mahtitekijä uusiutuvien energialähteiden kehityksessä, ja Trump osoitus viimeisestä öljyn perään itkemisestä, m
      Maailman menoa
      36
      3203
    5. Mies, kerro minulle vielä jotakin aivan uniikkia

      ja ainutlaatuista minkä vain me kaksi voisimme ymmärtää jos olemme sen kokeneet ja eläneet, jotta ihan varmasti tietäisi
      Tunteet
      43
      2704
    6. Oikeistopuolueiden kannatus vain 37,8 %, vasemmiston 43,0 %

      Keskustaan jää 17,4 prosenttia ja loput ovat sitten mitä ovat. Mutta selvästikin Suomen kansa on vasemmalle kallellaan.
      Maailman menoa
      37
      2265
    7. Tiedän ettei

      Meistä mitään tule. Toinen oli sinulle tärkeämpi
      Ikävä
      22
      2218
    8. Hyviäkin uutisia tulossa, hallinto-oikeus asettaa toimeenpanokieltoon

      Hyvinvointitalon työmaa pysähtyy. Rillankivi+energia ja vesi kytkyrahanpesu stoppaa. Tytäryhtiöiden hallitusjäsenet+kon
      Pyhäjärvi
      229
      2156
    9. prööt prööt nyt ottaa vihervassaria pattiin!

      Korvatkaa R kirjaimet L kirjaimilla ja sanokaa ääneen "Jari Kurri etsii pakoputkiautossaan jarruja".
      Maailman menoa
      11
      1894
    10. Gallup: Mikä on ollut mielestäsi paras tv-sarja ikinä?

      Gallup: Mikä on ollut mielestäsi paras tv-sarja ikinä? Onko se joku suomalainen viihdepläjäys, brittirikossarja, amerikk
      Tv-sarjat
      92
      1804
    Aihe