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

299

    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. Kelekkakisat

      Mikä vakava onnettomuus sattunut kisoissa. On peruttu koko kisat. Pelastuskopteri näytti käyvän paikalla.
      Nivala
      14
      6423
    2. Kuinka pitkä välimatka

      on teidän kotien välillä?
      Ikävä
      89
      3027
    3. Onko kaivattusi

      …mielestäsi älykäs, tai kenties tyhmä? Oma mielipide.
      Ikävä
      91
      3022
    4. Eikö me voitais

      Vaan harrastaa seksiä kun muusta ei tule mitään
      Ikävä
      46
      2882
    5. Aivan kauheaa

      Veikö koskiuoma taas ihmishengen? Se pitää kieltää!
      Imatra
      16
      2788
    6. Epäilen ettet edes

      Kehtaisi liikkua kanssani.
      Ikävä
      46
      2384
    7. Oletko huomannut

      Yhden muutoksen?
      Ikävä
      26
      2378
    8. Pitäis vaan lopettaa

      Sinun kanssa yhteydenpito. Alkaa vaan haluamaan enemmän ja tuskin lopulta mikään kohtaisi. Ja ikävä vaan kasvaa ja lähei
      Ikävä
      13
      2190
    9. Ikävä uutinen uudesta Unelmia Italiassa -kaudesta

      Unelmia Italiassa -sarja on ollut supersuosittu ja uutta kautta on odotettu. Nyt on tullut se aika, että TV-katsojat pää
      Tv-sarjat
      7
      1963
    10. Salatut elämät: Lola Odusoga -paljastus - Tämä suosii tiettyjä Salkkarit-faneja!

      Salatut elämät vetää katsojia tv-ruudun äärelle jaksosta, kaudesta ja vuodesta toiseen. Tähän mennessä sarjaa on nähty j
      Salatut elämät
      8
      1901
    Aihe