|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Changement de comportement Unicode Windows 11 |
| Débuté par jean.pierre.bloch, 10 déc. 2023 16:21 - 8 réponses |
| |
| | | |
|
| |
Membre enregistré 2 299 messages |
|
| Posté le 10 décembre 2023 - 16:21 |
Bonjour,
Comme ceci est une fonction que je n'ai pas utilisée depuis longtemps, je ne sais pas si c'est lié au passage à Windows 11.
J'ai un texte dans Word : les caractères Unicode sont OK. Je le copie dans Notepad UTF-8 : les caractères Unicode sont OK. Je charge le fichier texte par la fonction :
sFichierContenu = fChargeTexte(sFichier, foUnicode) les caractères Unicode sont KO ! Que dois-je faire pour conserver l'Unicode ?
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 120 messages |
|
| Posté le 11 décembre 2023 - 09:55 |
bonjour, quel est le typage de ta chaine "sFichierContenu" ? est-ce bien une chaine unicode également. A spécifier dans la déclaration de variable ou de facon globale dans la description du projet. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 749 messages |
|
| Posté le 11 décembre 2023 - 11:24 |
En plus de ce que dit Lionel, Je rajouterai que sFichier doit être un chemin au format ANSI De plus, ton projet est sûrement en ANSI c'est pour cela que sFichierContenu est KO. Cerise sur le gâteau, tu n'utilise pas de fonction de conversion Tout est bien expliqué sur https://doc.pcsoft.fr/?3024038 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 299 messages |
|
| Posté le 11 décembre 2023 - 17:02 |
Bonjour,
Merci Lionel et Popoy.
Malheureusement, comme je l'indique, le projet marchait bien il y a plusieurs mois : - le projet est en Unicode, - la variable chaine "sFichierContenu" est Unicode.
Tout le reste fonctionne bien. Je soupçonnais un changement de codage dans Word ou dans le Coller dans NotePad Windows 11, bien que visuellement tout soit correct.
NB : mon application tournait avant sur un Windows 10 32 (?).
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 749 messages |
|
| Posté le 11 décembre 2023 - 18:31 |
Re salut, Il existe une petite différence entre les windows (XP,7,10,11) La plupart utilise par défaut ANSI (question de compatibilité descendante) Cependant sous windows 11 , l'unicode est en UTF-16. Il est possible d' activer UTF-8 :
Panneau de configuration > Horloge et région > Région > onglet Administration > bouton Modifier les paramètres régionaux du système > activer la version bêta : utilisez Unicode UTF-8 pour la prise en charge des langues dans le monde entier.
La même fenêtre GUI peut également être lancée à partir de Paramètres > Heure et langue > Langue et région > Paramètres de langue administrative > Onglet Administration > Bouton Modifier les paramètres régionaux du système > activer la version bêta : utilisez Unicode UTF-8 pour la prise en charge des langues dans le monde entier. Peut être que cela va résoudre ton problème. Tiens moi au courant.Message modifié, 11 décembre 2023 - 18:32 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 299 messages |
|
| Posté le 12 décembre 2023 - 11:59 |
Bonjour Popoy,
J'ai testé ta solution : Plantage de mon application sur une chemin avec accent non reconnu !!! Retour arrière vite fait .
Je vais essayer de vier mon fichier intermédiaire et de le recréer. C'est lui qui semble posé problème car tout le reste fonctionne.... A suivre.
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 299 messages |
|
| Posté le 26 décembre 2023 - 22:15 |
Salut Popoy,
La fonction pour laquelle mon problème existe est secondaire dans mon application, c'est pourquoi je n'ai pas poursuivi les investigations...  J'ai recodé à la main tous les caractères accentués ! Il fallait bien que j'avance.
Les pistes que tu m'as fournies n'ont pas abouti. Je récapitule : 0. Windows 11 23H2 (je vais retesté avec mon vieux PC en 10) 1. je pars d'un document Word 2019 : OK 2. je copie les lignes dans un fichier Notepad (Windows CRLF + UTF-8 ) = OK 3. je lis le fichier :
sFichierContenu, sLigne sont des chaînes UNICODE sFichierContenu = fChargeTexte(sFichier, foUnicode) NB : le projet est en UNICODE
NB 2 : j'ai par ailleurs un import à partir de Excel de données en provenance d'une autre partie du fichier Word qui marche nickel ! ??? Je vais réécrire l'import ci-dessus pour passer par Excel et plus par Notepad !
-- Bon dev, Jean-PierreMessage modifié, 26 décembre 2023 - 22:21 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 310 messages |
|
| Posté le 27 décembre 2023 - 00:14 |
Bonjour, Avez-vous essayé d' enregistrer le txt en UTF16-LE. (Littlle Endian dans les options de sauvegarde du notepad)
Bon dev |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 299 messages |
|
| Posté le 27 décembre 2023 - 10:11 |
Bonjour Samir,
Je viens de tester avec Windows 10 et, effectivement, c'est bien UTF16-LE qui est utilisé ! Merci à vous 
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|