Le HTML International.
tablier
Membre
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", "{", "|", "}", "~", "•",
"Ä", "Å", "Ç", "É", "Ñ", "Ö", "Ü", "á",
"à", "â", "ä", "ã", "å", "ç", "é", "è",
"ê", "ë", "í", "ì", "î", "ï", "ñ", "ó",
"ò", "ô", "ö", "õ", "ú", "ù", "û", "ü",
"†", "°", "¢", "£", "§", "•", "¶", "ß",
"®", "©", "â„¢", "´", "¨", "≠", "Æ", "Ø",
"∞", "±", "≤", "≥", "¥", "µ", "∂", "∑",
"âˆ", "Ï€", "∫", "ª", "º", "Ω", "æ", "ø",
"¿", "¡", "¬", "√", "ƒ", "≈", "Δ", "«",
"»", "...", " ", "À", "Ã", "Õ", "oe’", "oe“",
"–", """, "“", "â€", "‘", "'", "÷", "â—Š",
"ÿ", "oe¸", "â„", "€", "‹", "›", "•", "•",
"‡", "·", "‚", "„", "‰", "Â", "Ê", "Á",
"Ë", "È", "Í", "Î", "Ï", "Ì", "Ó", "Ô", "•",
"Ò", "Ú", "Û", "Ù", "•", "ˆ", "Ëœ", "¯",
"•", "•", "°", "¸", "•", "•", "•" } ;
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]) ;
}
- (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", "{", "|", "}", "~", "•",
"Ä", "Å", "Ç", "É", "Ñ", "Ö", "Ü", "á",
"à", "â", "ä", "ã", "å", "ç", "é", "è",
"ê", "ë", "í", "ì", "î", "ï", "ñ", "ó",
"ò", "ô", "ö", "õ", "ú", "ù", "û", "ü",
"†", "°", "¢", "£", "§", "•", "¶", "ß",
"®", "©", "â„¢", "´", "¨", "≠", "Æ", "Ø",
"∞", "±", "≤", "≥", "¥", "µ", "∂", "∑",
"âˆ", "Ï€", "∫", "ª", "º", "Ω", "æ", "ø",
"¿", "¡", "¬", "√", "ƒ", "≈", "Δ", "«",
"»", "...", " ", "À", "Ã", "Õ", "oe’", "oe“",
"–", """, "“", "â€", "‘", "'", "÷", "â—Š",
"ÿ", "oe¸", "â„", "€", "‹", "›", "•", "•",
"‡", "·", "‚", "„", "‰", "Â", "Ê", "Á",
"Ë", "È", "Í", "Î", "Ï", "Ì", "Ó", "Ô", "•",
"Ò", "Ú", "Û", "Ù", "•", "ˆ", "Ëœ", "¯",
"•", "•", "°", "¸", "•", "•", "•" } ;
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.