2012-05-01 4 views
7

Esiste una libreria wrapper che riproduce i nomi delle funzioni "ANSI" di Windows (ad esempio CreateFileA), presuppone che gli input siano in UTF-8, li converta in UTF-16, chiama la versione UTF-16 della funzione (ad es. CreateFileW) e converte le uscite in UTF-8 per il programma?Librerie wrapper API da UTF-8 a UTF-16 per Windows?

Permetterebbe ai programmi ASCII di usare UTF-8 quasi senza interruzioni.

+4

AFAIK - no, ci sono troppe funzioni dell'API di Windows. – valdo

+0

È possibile convertire una stringa * ASCII * in UTF-16 banalmente. – JeremyP

+0

Probabilmente è più semplice mordere il proiettile e utilizzare le versioni UTF-16 delle funzioni dell'API di Windows ovunque. Se le stringhe provengono da fonti UTF-8, è probabilmente più facile racchiuderle * quelle *. – jamesdlin

risposta

2

Invece di avvolgere le funzioni API, è più semplice racchiudere le stringhe in una funzione di conversione. Allora sarai a prova di futuro quando la prossima versione di Windows aggiungerà più funzioni API.

+0

Odio fare -1, ma questo è davvero non rispondere alla domanda. : \ – Mehrdad

+0

@ Mehrdad, hai ragione. Mentre potrebbe non essere la risposta alla domanda come chiesto, * è * la risposta al problema dietro la domanda. –

+0

Supponiamo che tu abbia accesso al codice sorgente. Ma se avessi una libreria come questa, non avresti bisogno del codice sorgente - potresti semplicemente compilare la libreria come una DLL e reindirizzare le funzioni in fase di runtime. – Mehrdad

0

C'è questa cosa chiamata WDL, ha alcuni wrapper UTF-8 (win32_utf8). Non l'ho mai provato, quindi non so quanto sia completo il supporto.

+0

Sembra avere solo wrapper per una manciata di funzioni (circa ~ 30). – Mehrdad

Problemi correlati