Comment coder/décoder une chaine en Unicode?

Bonjour,
Comment coder/décoder une chaine en Unicode ?
Par exemple, “Capture d’écran” devient “Capture d\U2019e\U0301cran” avec un (Uni)code (enfin, je crois) pour l’apostrophe et l’accent aiguë.
D’avance, merci.

Xojo n’a aucun encodings pour cela. Peut être pouvez-vous effectuer une suite de remplacements ?

En fait, il s’agit d’une chaine (string) dans un fichier .plist de macOS.
Il s’agit peut-être d’un autre type d’encodage usuellement utilisé pour ce type de fichier (UTF-8 ?) par Apple. Comme je n’y connait rien j’ai pensé que c’était du Unicode…
J’ai vu des commandes Xojo “Encoding”, “Encodings” (avec un s) ou encore “ConvertEncoding”
et cela aussi sur wikipedia : Property list - Wikipedia avec tous les formats de fichiers Mac.
Si vous en savez davantage…
Merci.

Si tu fait:

Var  str As String

str = "Capture d’écran"

la chaine str est déja en UTF8 et il n’est pas necessaire a faire autre chose.

Encodings n’a rien de ce genre https://documentation.xojo.com/api/text/encoding_text/encoding.htmls

Quant à ce que vous avez posté, ce ne sont pas des valeurs unicode, même si cela y ressemble.

“é” en Unicode est U00E9, et le single quote U0027.

U+0301 ́ cc 81 COMBINING ACUTE ACCENT

He seems to be asking about the combining characters. Much easier not to bother with this. We had a whole long thread avbout it recently.

No, it is not a Unicode combining accent.

"Capture d’écran” devient “Capture d\U2019e\U0301cran”

The apostrophe becomes \U2019, and in Unicode it is U02BC.

é becomes e\U0301 which does not mean anything in Unicode. Non advancing grave in Unicode is U0060 and it should come before e.

It is quite a different representation.

Yes it does. It is e followed by the COMBINING ACUTE ACCENT character which gives you é. That is three bytes (two characters) in UTF8 which gives you one glyph (if that’s the word).

Personally I would prefer:

U+00E9 é c3 a9 LATIN SMALL LETTER E WITH ACUTE

Which is two bytes, one UTF8 character, one glyph.

Tim, you don’t understand. The values posted by the OP simply don’t mean a thing in Unicode.

Please go to unicode.org and look up U0301. Here: nothing to do whatsoever with grave:
Unicode Utilities: Character Properties

Le problème c’est que Denis n’a pas expliqué d’où il tient cette chaîne de caractères.

Dans ces conditions, il est difficile de donner une réponse qui a vraiment du sens.

Il nous dit que cela vient d’un fichier plist.

Etrange. Je viens d’éditer un fichier plist moi-même dans XCode: les accents sont simplement codés tels quels. Je crains que notre posteur ne soit engagé dans la chase au dahu.

<key>CFBundleName</key>
	<string>tagada: é è ç à ù âêîôû ä ë ïöü</string>

Ce que tu as oublié, c’est qu’il dit qu’il récupère les informations à partir de l’application Terminal…

Où avez-vous vu qu’il récupérait ces données dans le Terminal ? ? ?

@Emile_Schwarz @Michel_Bujardet @TimStreater
Bonjour à tous.
Merci à tous pour ces contributions intéressantes.
Je vais préciser les choses.
Il s’agit du fichier “com.apple. screencapture.plist” (dossier “Bibiiotheque” of course)

Voici le contenu en entier :slight_smile:

{
    "disable-shadow" = 1;
    "include-date" = NO;
    "last-analytics-stamp" = "667905350.104239";
    "last-selection" =     {
        Height = 945;
        Width = 1680;
        X = 284;
        Y = "149.5";
    };
    "last-selection-display" = 0;
    location = "/Users/dedubo/Desktop/";
    "location-last" = "~/Documents/";
    name = "Capture d\\U2019e\\U0301cran de";
    target = file;
    type = png;
}

Voir la clé “name” = “Capture d\U2019e\U0301cran de” (par exemple)
Pour info, j’ai modifié le nom des captures par défaut avec Onyx (Mac) puis ai regardé dans le fichier com.apple. screencapture.plist, le résultat des modifs. Effectivement à partir du Terminal (je vois qu’il y en a qui suivent :slight_smile: à partir d’une redirection > macapture.text (par ex.)

Ouvrez le fichier plist dans XCode (gratuit dans le Mac App Store).

Essayez aussi dans TextEdit ou autre editeur texte.

Ouvert dans Nova :

OK. A la fois Nova et XCode montrent les accents correctement.

Ca se confirme, le fichier plist n’accepte pas les modifications qui comportent des espaces, des accents et des caractères spéciaux ! Aucun problème pour les mots simples sans espace.
Il y a bien un codage a respecter. mais lequel et comment ?

Shell1.Execute ("defaults write com.apple.screencapture name " + TextFieldName.Text)
Shell1. Close

(clé “name” de type string dans le fichier plist)

D’après mes recherches, il s’agit bien de caractères unicodes Latin dans le tableau est ici :slight_smile:
https://www.utf8-chartable.de/unicode-utf8-table.pl

Seuls les accents sont concernés mais pas les espaces, ni les caractères $, @, &, tirets.
La question est comment tranformer ces accents en leur équivalent utf8 ?
Merci.

Peut être pourriez vous tenter de présenter le contenu du textfield en encodings Macos, ou à défaut, ASCII (ce qui enlève les accents) ?