Convertisseur Unicode RTF
café devient caf\u233? : l'ASCII simple reste lisible, chaque autre caractère devient un mot de contrôle RTF avec un décimal signé et une marque de repli, et les échappements collés redeviennent du texte, émojis compris. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- café
- Mode de calcul
- Encode
- Résultat
- caf\u233?
- Longueur
- 9
- Unités de code
- 4
- Nombre d'échappements
- 1
Les fichiers Rich Text Format et les fragments du presse-papiers masquent souvent les caractères non ASCII derrière un mot de contrôle bien précis : une barre oblique inverse, la lettre u, un entier décimal signé et, le plus souvent, un caractère ANSI de repli tel qu’un point d’interrogation. Les ingénieurs support, les spécialistes de la localisation et les développeurs qui collent des extraits RTF dans des tickets ont besoin d’un convertisseur qui transforme le texte lisible en ces mots de contrôle et renvoie des caractères sans deviner des valeurs tronquées ou hors plage.
Comment les mots de contrôle RTF \uN représentent Unicode
La spécification RTF définit une destination Unicode qui insère une unité de code UTF-16 pour chaque mot de contrôle barre-u. Le nombre après u est un entier signé de seize bits en décimal : de 0 à 32767 il nomme directement les unités du BMP ; de −32768 à −1 il nomme la moitié supérieure du BMP en complément à deux, de sorte que l’unité 65533 apparaît comme −3.
Juste après les chiffres, les lecteurs RTF ignorent un nombre fixe de caractères de destination ANSI contrôlé par barre-uc ; la valeur par défaut 1 signifie qu’un seul caractère de repli (par exemple un point d’interrogation) est consommé et écarté lorsque le lecteur comprend Unicode. Les rédacteurs émettent donc des motifs comme caf suivi de barre-u-233 et point d’interrogation pour café, en laissant les lettres ASCII littérales pour que le fichier reste partiellement lisible.
Les caractères hors du plan multilingue de base deviennent un substitut haut et un substitut bas sous forme de deux mots de contrôle consécutifs, souvent avec des décimaux négatifs pour les deux moitiés. Cette capacité parcourt le texte par unité UTF-16 à l’encodage, laisse l’ASCII inférieur à 128 inchangé et formate chaque unité non ASCII comme barre-u, le décimal signé et le repli choisi.
Au décodage, elle cherche barre-u, un signe optionnel et un à cinq chiffres, valide la plage signée de seize bits, consomme un caractère de destination s’il est présent, et recombine les paires de substituts valides en un seul scalaire pour que les emoji fassent l’aller-retour correctement. Les échappements tronqués, les chiffres manquants et les décimaux hors plage échouent avec un index clair au lieu d’inventer un caractère.
Ce que vous envoyez et ce que vous recevez
Envoyez un champ chaîne obligatoire nommé text et un champ optionnel mode valant encode ou decode. Lorsque mode est omis, encode est la valeur par défaut et une seule charge utile reste utile. Encode transforme les unités non ASCII en échappements RTF contigus tout en gardant l’ASCII lisible : café devient caf plus barre-u-233 et point d’interrogation, et une chaîne avec emoji produit deux mots de contrôle signés pour la paire de substituts.
Decode inverse le processus : il remplace chaque barre-u décimal bien formé par l’unité de code correspondante, supprime le caractère de destination d’un caractère lorsqu’il est présent, conserve les littéraux jamais échappés et recombine les paires haut-bas en un seul caractère. Les échecs de validation ne consomment pas le solde prépayé.
Cas d’usage
Construire des goldens CI pour les rédacteurs RTF
Encodez des noms de produits et des légendes accentuées en formes stables \uN? que les sérialiseurs RTF et les tests de publipostage doivent faire correspondre après une mise à jour de bibliothèque.
Enseigner l’Unicode RTF signé sur 16 bits
Montrez aux étudiants que les unités hautes du BMP et les substituts d’emoji utilisent des décimaux négatifs en RTF, contrairement au hex \uXXXX de JavaScript, puis décodez la paire en un seul caractère.
Questions fréquentes
En quoi les échappements Unicode RTF diffèrent-ils de \uXXXX en JavaScript ?
Le RTF utilise un décimal signé après \u (par exemple \u233? pour é) et un caractère ANSI de repli d’un seul caractère.
Comment encoder du texte au format RTF \uN ?
Envoyez text avec mode encode (la valeur par défaut). L’ASCII reste littéral ; chaque unité UTF-16 non ASCII devient \u plus un décimal signé plus le caractère de repli (par défaut ?).
Comment décoder les mots de contrôle Unicode RTF ?
Envoyez la chaîne échappée avec mode decode. Les séquences \uN bien formées deviennent des caractères ; un caractère de destination après chaque nombre est consommé s’il est présent ; les paires de substituts se recombinent en emoji et autres scalaires hors BMP.
Que se passe-t-il en cas d’échappement RTF mal formé ?
Les échecs de validation ne sont pas facturés.
Pourquoi certains codes Unicode RTF sont-ils négatifs ?
Le RTF écrit chaque code comme un nombre signé sur 16 bits. Les valeurs jusqu'à 32767 apparaissent telles quelles, les suivantes deviennent négatives : le caractère 65533 s'écrit donc -3. Le convertisseur applique et inverse cette règle pour vous.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/rtf-unicode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"café"}'const res = await fetch("https://api.kit.forhosting.com/enc/rtf-unicode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/rtf-unicode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/rtf-unicode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/rtf-unicode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "café"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.rtf_unicode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Contrairement aux échappements hexadécimaux de JavaScript ou de JSON (barre-u et quatre chiffres hex), le RTF stocke l’unité de code UTF-16 sous forme de nombre décimal qui peut être négatif lorsque l’unité dépasse 32767 : ainsi é devient barre-u-233 et point d’interrogation, et les substituts hauts des emoji forment des paires négatives. L’outil gratuit du navigateur et l’API payante partagent un noyau déterministe, de sorte que démonstrations, contrôles CI et webhooks en direct s’accordent au prix publié de $0.002 par élément réussi.
Comment les mots de contrôle RTF \uN représentent Unicode
Cette conception est totalement différente des échappements hex à quatre chiffres de Java ou JSON bien que les deux commencent par barre-u ; c’est pourquoi quiconque cherche une conversion Unicode RTF a besoin d’une page dédiée plutôt que d’un outil hex seul.
Ce que vous envoyez et ce que vous recevez
Les réponses de succès renvoient mode, text et fallback, livrent result comme chaîne de sortie principale et incluent length, code_units pour les unités UTF-16 traitées, escape_count pour le nombre de mots de contrôle produits ou consommés, une étiquette de format de style barre-u-N-point-d’interrogation et une courte note nommant les mots de contrôle Unicode RTF. L’absence de text, des valeurs de mode non prises en charge, des chaînes plus longues que le maximum documenté, un fallback de plus d’un caractère, des nombres tronqués après barre-u, des corps non numériques et des valeurs signées hors plage échouent avec invalid_input et un message en anglais qui nomme le champ ou l’index. Le tarif des appels API réussis est la base publiée de $0.002 par élément.
Où la conversion Unicode RTF apparaît dans le travail réel
Les équipes de migration documentaire extraient des publipostages .rtf hérités et des rubriques d’aide qui portent encore des noms de produit accentués codés en mots de contrôle décimaux ; décoder ces extraits en Unicode brut accélère la relecture sans ouvrir un traitement de texte complet. L’assurance qualité de localisation compare une chaîne RTF exportée à une entrée de mémoire de traduction en encodant la phrase attendue et en affirmant des mots de contrôle stables après une mise à jour de bibliothèque. Si vous avez besoin d’échappements hex à quatre chiffres de style JavaScript, de listes brutes de points de code U-plus, d’encodage percent pour les URL ou d’entités nommées HTML, traitez-les comme des intentions de recherche et des pages distinctes — ces outils répondent à d’autres requêtes même lorsque les parcours de chaînes sous-jacents sont courts. Les ponts de presse-papiers entre d’anciens contrôles rich-edit Windows et des applications web modernes laissent souvent des séquences barre-u dans des journaux JSON intermédiaires ; le support colle le fragment dans un échappeur Unicode RTF dédié plutôt que de calculer à la main le complément à deux de chaque unité au-dessus de 32767. Comme cette capacité est un moteur d’analyse pur, le tarif API reste à la base publiée de $0.002 par élément réussi et une validation en échec ne consomme pas le solde.
Cas d'intégration
Décoder le presse-papiers RTF et les fragments .rtf
Collez un extrait de rich text plein de mots de contrôle décimaux barre-u, décodez en Unicode lisible, puis ré-encodez un fixture corrigé pour la prochaine exportation.
Questions techniques
Combien coûte le convertisseur Unicode RTF ?
L’outil du navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n’est pas facturée.