Le HTML International.

tabliertablier Membre
05:18 modifié dans API AppKit #1
Comme je génère des fichiers HTML, j'ai commis la routine suivante qui convertit un NSString en un String contenant du texte HTML. Suite à  mon intervention sur la taille des dossiers, j'ai examiné mon code et il est évident qu'il ne marche que pour les NSString contenant une langue européenne. Comment fait-on si l'on a du Coréen, du Chinois, de l'arabe..... Met-on une table dans les .lproj?



- (NSString *)MacToIso:(NSString *)LeMacRoman
{
static char *Liso[] = { "\000", "\001", "\002", "\003", "\004", "\005", "\006", "\007",
"\010", "\011", "\012", "\013", "\014", "\015", "\016", "\017",
"\020", "\021", "\022", "\023", "\024", "\025", "\026", "\027",
"\030", "\031", "\032", "\033", "\034", "\035", "\036", "\037",
" ", "!", """, "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/",
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?",
"@, A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O",
"P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\\", "]", "^", "_",
"`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "•",
"&Auml;", "&Aring;", "&Ccedil;", "&Eacute;", "&Ntilde;", "&Ouml;", "&Uuml;", "&aacute;",
"&agrave;", "&acirc;", "&auml;", "&atilde;", "&aring;", "&ccedil;", "&eacute;", "&egrave;",
"&ecirc;", "&euml;", "&iacute;", "&igrave;", "&icirc;", "&iuml;", "&ntilde;", "&oacute;",
"&ograve;", "&ocirc;", "&ouml;", "&otilde;", "&uacute;", "&ugrave;", "&ucirc;", "&uuml;",
"†", "&deg;", "&cent;", "&pound;", "&sect;", "•", "&para;", "&szlig;",
"&reg;", "&copy;", "™", "&acute;", "&uml;", "≠", "&AElig;", "&Oslash;",
"∞", "&plusmn;", "≤", "≥", "&yen;", "&micro;", "∂", "∑",
"∏", "π", "∫", "&ordf;", "&ordm;", "Ω", "&aelig;", "&oslash;",
"&iquest;", "&iexcl;", "&not;", "√", "ƒ", "≈", "Δ", "&laquo;",
"&raquo;", "...", "&nbsp;", "&Agrave;", "&Atilde;", "&Otilde;", "oe’", "oe“",
"–", """, "“", "”", "‘", "'", "&divide;", "◊",
"&yuml;", "oe¸", "⁄", "€", "‹", "›", "•", "•",
"‡", "&middot;", "‚", "„", "‰", "&Acirc;", "&Ecirc;", "&Aacute;",
"&Euml;", "&Egrave;", "&Iacute;", "&Icirc;", "&Iuml;", "&Igrave;", "&Oacute;", "&Ocirc;", "•",
"&Ograve;", "&Uacute;", "&Ucirc;", "&Ugrave;", "•", "ˆ", "˜", "&macr;",
"•", "•", "&deg;", "&cedil;", "•", "•", "•" } ;

char resultat[1024] = "" ;
char entrer[1024] ;
char *temp;
unsigned char *Flag;
unsigned char *Recoit;
unsigned char Kr ;

temp = entrer ;
*temp = 0 ;
CFStringGetCString((CFStringRef)LeMacRoman, temp, (CFIndex)1022, kCFStringEncodingMacRoman) ;
Recoit = (unsigned char *)resultat ; // ou mettre le résultat
while ( (Kr = *temp++) != 0) // faire jusqu'à  la fin du string
{
Flag = (unsigned char *)Liso[ Kr ] ; // substitution d'un tag HTML
while ( *Flag != 0)  { *Recoit++ = *Flag++ ; } ;
} ;
*Recoit = 0 ; // zéro final car string C
return ( [NSString stringWithUTF8String:resultat]) ;
}

Connectez-vous ou Inscrivez-vous pour répondre.