View Single Post
Old 28th October 2018, 20:52   #32
Ben Allison
Former Winamp Developer
Benski's Avatar
Join Date: Jan 2005
Location: Brooklyn, NY
Posts: 1,057
Here's the mapping used in classic skin.
switch (ic)
case L'\u00B0': /*¡*/ ic = L'0'; break;
case L'\u00C6':/*®*/ case '\u00C1':/*ç*/ case '\u00C2': ic = L'A'; break;
case L'\u00C7': /*‚*/ ic = L'C'; break;
case L'\u00C9':/*ƒ*/ ic = L'E'; break;
case L'\u00E0': /*ˆ*/ case L'\u00E1': /*‡*/ case L'\u00E2': /*‰*/ ic = L'a'; break;
case L'\u00E6':/*¾*/ ic = L'a'; break;
case L'\u00E7': /**/ ic = L'c'; break;
case L'\u00E8': /**/ case L'\u00E9': /*Ž*/ case L'\u00EB': /*‘*/case L'\u00EA':/**/ ic = L'e'; break;
case L'\u00EC':/*“*/ case L'\u00ED':/*’*/ case L'\u00EE':/*”*/ case L'\u00EF':/*•*/ ic = L'i'; break;
case L'—':/*—*/ case L'˜':/*˜*/ case L'™':/*™*/ ic = L'o'; break;
case L'œ':/*œ*/ case L'':/**/ case L'ž':/*ž*/ ic = L'u'; break;
case L'Ø':/*Ø*/ ic = L'y'; break;
case L'†':/*†*/ ic = L'U'; break;
case L'\u00D1':/*„*/ ic = L'N'; break;
case L'\u00F1':/*–*/ ic = L'n'; break;
case L'\u00FC': /*Ÿ*/ ic = L'u'; break;
case L'\u0192':/*Ä*/ ic = L'f'; break;
default: break;
} // quick relocations

Perhaps an XML tag that turns on attempts to use this mapping? I will also explore using built-in win32 functions to do the conversion.

EDIT: some of these don't make sense. not sure if the symbols pasted wrong or something.
Benski is offline   Reply With Quote