Bonjour tout le monde !

Voilà, j'ai un problème pour tronquer du texte dans les pays suivant :
- Japon (Japonnais) : 1 caractère peut aller jusqu'à 4 octets
- Corée (Coréen) : 1 caractère peut aller jusqu'à 4 octets
- Thailande (Thai) : 1 caractère peut aller jusqu'à 3 octets

Que me conseillez-vous pour tronquer une chaine de caractère, sans tronquer l'idéogramme ?
=> Je veux que le dernier "idéogramme" soit complet.


Pour le Chinois, le Vietnamien et le taiwanais, j'arrive à contrer le problème car un caractère peut aller jusqu'à 2 octets.

Dans ce cas, j'ai écris une petite procédure delphi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function TForm.RenvoieChaineFormatee(Chaine: String;
  NbCaractere: integer): String;
var
  AsciiVal: Integer;
  Cpt : Integer;
  C: Char;
  DebutIdeogramme : Boolean;
begin
  Result:= '';
  DebutIdeogramme := True;
  for Cpt := 1 to Length(Chaine) do
  begin
    C := Chaine[Cpt];
    AsciiVal := Ord(C);
    if (AsciiVal > 128) then
    begin
      if DebutIdeogramme then
      begin
        DebutIdeogramme := False;
        if Cpt >= NbCaractere then
          break
        else
          Result := Result + C;
      end
      else
      begin
        DebutIdeogramme := True;
        Result := Result + C;
      end;
    end
    else
      Result := Result + C;
  end;
end;