Advertisement
Retracer

Convert UTF-8 string to ANSI

Feb 15th, 2025 (edited)
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 0.64 KB | Fixit | 0 0
  1. // Converting UTF-8 symbols to ANSI
  2.  
  3. stock ConvertUTF8ToANSI(const utf8str[])
  4. {
  5.     new ansistr[1024], i = 0, j = 0;
  6.     while(utf8str[i] != 0 && j < sizeof(ansistr) - 1)
  7.     {
  8.         if((utf8str[i] & 0x80) == 0) ansistr[j++] = utf8str[i++];
  9.         else if((utf8str[i] & 0xE0) == 0xC0)
  10.         {
  11.             new symbol = ((utf8str[i] & 0x1F) << 6) | (utf8str[i + 1] & 0x3F);
  12.             switch(symbol)
  13.             {
  14.                 case 0x0410..0x044F: ansistr[j++] = symbol - 0x0350;
  15.                 default: ansistr[j++] = '?';
  16.             }
  17.             i += 2;
  18.         }
  19.         else if((utf8str[i] & 0xF0) == 0xE0 || (utf8str[i] & 0xF8) == 0xF0) i += (utf8str[i] & 0xF0) == 0xE0 ? 3 : 4;
  20.         else i++;
  21.     }
  22.     ansistr[j] = 0;
  23.     return ansistr;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement