Unicode/ UTF-8 fichier texte: charabia sur la console Windows (en Essayant d'affichage de l'hébreu)
J'ai un large fichier de caractères (avec texte hébreu) qui a l'air bien dans le bloc-notes (enregistré en "UTF-8"), se lit bien dans Notepad++, et quand j'ai copier-coller dans MS Word il a l'air bien aussi. Mais quand j'ouvre une fenêtre "DOS" (console Windows) et d'aller: "type file.txt" il imprime que du charabia.
Et oui, j'ai fait toutes les recommandations pour l'Unicode sur console Windows: j'ai ouvert la console à l'aide de "cmd /u", j'ai changé la police de caractères Lucida, et j'ai entré: "chcp 65001".
Le problème est identique sur un PC exécutant Windows 7, et sur un autre PC exécutant Windows XP SP3.
Avez-vous pris un coup d'oeil à cela? msdn.microsoft.com/en-ie/goglobal/bb964650%28en-us%29.aspx
Ce qui est intéressant - merci, je ne savais pas à ce sujet. Mais n'est-il pas équivalent à: 1. L'ouverture de la console à l'aide de "cmd /u", 2. Changer la police de caractères Lucida, et 3. Entrant: "chcp 65001"?
vous devez les accepter une réponse si cela fonctionne
Ce qui est intéressant - merci, je ne savais pas à ce sujet. Mais n'est-il pas équivalent à: 1. L'ouverture de la console à l'aide de "cmd /u", 2. Changer la police de caractères Lucida, et 3. Entrant: "chcp 65001"?
vous devez les accepter une réponse si cela fonctionne
OriginalL'auteur Helen Craigman | 2012-02-17
Vous devez vous connecter pour publier un commentaire.
La Police
Courier New
prend en charge l'hébreu et peut être ajouté à l'invite de commande. Les polices par défaut sont consolas, lucida, raster, aucun d'entre eux l'appui, de l'hébreu. Ainsi l'ajouter en "Courier New" à l'invite de commande.C'est un registre hack pour faire
http://www.howtogeek.com/howto/windows-vista/stupid-geek-tricks-enable-more-fonts-for-the-windows-command-prompt/
http://www.techrepublic.com/blog/windows-and-office/quick-tip-add-fonts-to-the-command-prompt/
C'est un bon exemple de comment installer des polices, mais je devrais supprimer un grand nombre de ces entrées, parce que la plupart d'entre eux ne sont pas ajoutés à cmd parce que cmd n'a pas en charge.
Lucida et Consolas sont les valeurs par défaut.
Raster est un défaut non énumérés ici, peut-être parce que c'est une TTF
De tous ces j'ai essayé d'ajouter, à seulement 3 ajoutée(sont pris en charge par cmd)
Courier New, DejaVu Sans Mono, Droid Sans Mono
DejaVu Sans Mono et Droid Sans Mono sont téléchargeables, pris en charge par cmd, pourrait avoir de la bonne prise en charge d'unicode/caractères, mais ne comprennent pas l'hébreu
J'ai
Commun les caractères hébraïques sont myriam et David, mais ils ne peuvent pas être ajoutés à l'invite de commande.
Pour l'enregistrement, Babelmap pouvez dresser la liste de toutes les polices installées sur votre système de soutien de l'hébreu par exemple, dans babelmap - cliquez sur polices..de police de la couverture, puis entrez 05D0(aleph). Je pense que tous ces polices sur un défaut d'installation de windows 7
Mais la plupart ou la totalité de ces polices avec l'hébreu ne sont pas pris en charge dans l'invite de commande, à l'exception de la police Courier New. En fait, la plupart des polices d'arrêt ne sont pas pris en charge dans l'invite de commande, même pas "times new roman"(parce que "times new roman" n'est pas à espacement fixe /longueur fixe, et c'est l'un des un certain nombre de critères pour être pris en charge, d'autres critères semblent être les plus obscures).
Alors maintenant, vous pouvez avoir Courier New ajoutée et sélectionnés pour être utilisés dans l'invite de commande.
Et de sorte que vous pouvez coller des caractères unicode sur cmd fourni à la police sélectionnée prend en charge.
De copier/coller, cliquez sur le bouton Copier dans charmap
Il est maintenant dans le presse-papiers
Pour les coller dans l'invite de commande, dans win7 coller dans l'invite de commande n'est pas ctrl-v. Vous faites un clic droit et choisissez coller. (ou si dans sur mode d'édition rapide puis il suffit de faire un clic droit)
C'est la chose principale.
En outre
Souvent dans windows, on peut utiliser le bloc-notes et le caractère de la carte.. mais il faut être conscient de certaines limites.
Caractère carte montre la première 65536 caractères unicode lorsque la police de caractères sélectionnée prend en charge, et le caractère de la carte vous montre le code UTF-16. C'est ok, vous pouvez toujours coller à partir de la table des caractères dans un cmd.exe de la fenêtre, mais vous devez savoir que les commandes exécutées en cmd.exe et les tuyaux ne prennent pas en charge utf-16. Ainsi, vous pouvez utiliser la table de caractères, de trouver un personnage par exemple, aleph 05d0, mais il vaut la peine de regarder le personnage sur http://www.fileformat.info/info/unicode/char/05d0/index.htm, et de voir que tout le code utf-16 est 05d0, l'utf-8 code est d790. Le xxd de commande et le fichier de commande est utile pour voir le contenu réel d'un fichier et de déterminer le type du fichier.
Le bloc-notes est un peu limité quand il s'agit de l'unicode ou n'importe quel caractère dans le jeu de caractères unicode dont UTF16 code > FF. Et cmd est un peu limité en ce qui concerne certaines commandes comme "type", et en ce qui concerne les tuyaux et la redirection.
Si vous utilisez cmd.exe vous avez vraiment besoin de tuyaux pour travailler parce que les tuyaux sont importants..
Tuyaux sont limitées à des codages qui peut être spécifié par la Commande CHCP.
(Notez que si RSSA vous dit que vous êtes sur une page de codes, par exemple, 850, c'est vous dire l'encodage en entrée. Si vous exécutez la commande chcp 850 cela va changer à la fois l'entrée et la sortie d'encodages. Habituellement, ils sont les mêmes. C'est plus simple quand ils sont le même. Mais si vous avez utilisé un autre programme pour changer l'encodage de la cmd par exemple le compilateur c# a un switch qui change, alors il est préférable de la changer avec rssa de sorte que vous savez que les deux codages sont définies ).
Il y a un RSSA 1200 (UTF-16LE) et 1201(UTF-16BE) , mais ils ne sont pas pris en charge, si vous l'essayez, il va dire non valide codepage (testé dans win7). CHCP ne supporte pas l'UTF-16(il ne supporte pas UTF16LE ou UTF16BE). Il est CHCP 65001 (C'est de l'UTF-8 sans BOM). Et il n'y a RSSA 862 (à l'ancienne comme dans MS jours à façon, de l'encodage de l'hébreu, que j'ai mentionné)
Le type de commande prend en charge UTF16LE comme le bloc-notes(Ce que le bloc-notes appels Unicode, UTF-16 LE), Mais les tuyaux et la redirection ne le permettent pas. Le type de commande prend également en charge toute la page de codes spécifiée/pris en charge par la RSSA. Donc, le type prend en charge 862 ou 65001.
Vous pouvez utiliser le bloc-notes de l'enregistrer comme de l'utf-8 (ce qui est avec BOM), puis la tripoter de partout pour enlever la NOMENCLATURE. (C'est un peu exagéré).. Ou vous pouvez utiliser le bloc-notes, enregistrez-le au format Unicode UTF 16LE.. Mais alors vous ne pouvez pas sue tuyaux.. (c'est mauvais).. la Meilleure chose à faire est d'utiliser un éditeur de texte comme notepad2 ou notepad++, qui prend en charge UTF8 sans BOM.
Ou si tout, de la cmd vous pouvez utiliser 862 ou 65001. Bien que de nombreux éditeurs de texte pourrait ne pas donner un bon soutien de 862. Donc, vous pourriez préférer 65001.
Si vous voulez écrire de n'importe quel fichier dans le bloc-notes et il a un caractère plus grand que ce qu'en UTF16 est appelé \uFF, et que vous voulez exécuter des commandes dans cmd.exe sur ce fichier, puis certaines commandes (par exemple, le type de commande), va avoir des problèmes si vous ne prenez pas en compte ce qui est pris en charge par le ce.
Le bloc-notes supporte l'UTF-16BE, UTF-16LE et UTF-8 avec BOM. Ce n'est pas bon. Et pas besoin de jouer avec xxd et sed ou d'autres commandes pour supprimer la NOMENCLATURE. Si vous avez n'importe quel fichier avec un soi-disant caractère unicode d'un caractère à l'extérieur de la plage ascii. Un personnage > UTF-16 \uFF, comme indiqué par la table de caractères comme étant > \uFF, puis utilisez Notepad2 ou notepad++
Type prend en charge UTF16LE, et de toute page de codes définis par RSSA par exemple, 65001 ou 862.
Tuyaux et de redirection d'aller par tout ce qui est fixé par la RSSA.
Codepage 862 est tellement vieux, Codepage 65001 est une bonne façon d'aller.
xxd et de fichiers sont utiles pour voir comment un fichier est codé qui peut être utile si vous avez des questions. Mais pas absolument nécessaire.
Donc, si vous voulez écrire un fichier pour une utilisation dans CMD, et il a quelques caractères unicode, alors que toi, sont quelques-uns des commandes comme xxd et sed qui pourrait être utilisé pour enlever une NOMENCLATURE, et d'autres commandes pour le faire. Le moyen le plus facile de faire un tel fichier dans un éditeur de texte consiste à utiliser un éditeur de texte comme notepad2 ou notepad++ qui supporte l'utf-8 sans BOM.
Prise en hébreu, l'affichage pourrait être la chose la plus importante à faire en premier, comme décrit ci-dessus. Et la prochaine chose est d'être capable d'enregistrer des fichiers dans un éditeur de texte que vous pouvez afficher avec, par exemple, "type".
Et si jamais vous souhaitez copier à partir de l'invite de commande, si ce n'est dans sur mode d'édition rapide, puis faites un clic droit puis choisissez marquer puis sélectionnez-la, puis appuyez sur ENTRÉE. Et pour coller un clic droit et choisissez coller.
Un, plus un point est
Apparemment il y a des bugs dans chcp 65001 où certains fichiers de commandes ne fonctionnent pas et peut-être que certains programmes en C ne fonctionne pas, soit. Comment utiliser des caractères unicode dans la ligne de commande de Windows? Et j'ai même vu le c sharp compilateur crash lors de la cmd est dans la page de codes 65001 (si l'on peut reprocher à la c sharp compilateur, on peut aussi blâmer 65001) Pourquoi csc.exe s'écraser dernière fois que j'ai quitté la sortie de l'encodage UTF8?
Note- une révision antérieure de cette réponse a eu quelques exemples de ligne de commande, mais ils ont été inutilement complexe. Je pourrais à un certain point, ajouter quelques commandes que démontrer ce que je viens de décrire, mais il est assez trivial.
OriginalL'auteur barlop
/u
est pour l'UTF-16LE, pas en UTF-8. C'est pourquoi l'enregistrement du fichier en UTF-16LE (ce que Windows/le bloc-notes de prêter à des appels "Unicode"), et en cours d'exécution avec/u
œuvres, dans la mesure où il n'.UTF-8 devrait être réalisable avec
chcp 65001
, mais il y a une méchante faible niveau de bugs dans le Microsoft C Runtime pour cette page de code, ce qui rend certaines applications peu fiables, et d'autres pas du tout.Alors oui, je suis désolé, mais UTF-8 est un citoyen de seconde classe sous Windows. Tout ce qui utilise le 'ANSI' interfaces d'e /s, y compris tout ce qui utilise la norme C IO de la bibliothèque, y compris l'Invite de Commande, ne sera pas en mesure d'y faire face correctement.
Le seul moyen fiable pour obtenir Unicode sortie dans l'Invite de Commande est à utiliser Windows spécifiques
WriteConsoleW
interface de pousser des chaînes Unicode directement. Malheureusement, comme ce n'est pas la disposition de la croix-plate-forme, de nombreux outils de ne pas l'utiliser.Dans tous les cas, même quand vous avez le codage de droite, vous avez toujours avoir une police dans l'Invite de Commande qui contient les caractères que vous voulez. Je crois que c'est pourquoi vous ne pouvez toujours pas obtenir de l'hébreu, dans le
/u
+UTF-16LE route.Résumé: l'Invite de Commande + non-ASCII == presque certain d'échouer. Abandonner et de trouver une autre interface que vous pouvez utiliser qui prend en charge Unicode mieux.
type file.ext
sans cmd /u avec un encodage UTF-16LE w/BOM créé avec le bloc-notes. Mais avec cmd /u, je trouvetype file.ext
n'a pas de sortie d'un fichier créé avececho abc>file.ext
. Donc, je le trouve mieux sans cmd /uAussi, est-il un C Sharp équivalent de la bonne façon (WriteConsoleW) et la mauvaise façon de le faire?
OriginalL'auteur bobince
Vous devez convertir
file.txt
de l'UTF-16(Little Endian) avanttype file.txt
Référence: Quel encodage/code de la page est cmd.exe à l'aide?
Notepad++
Encoding > Convert to
Dans Notepad++, le seul
Encoding > Convert to
options sont les suivantes:<br>ANSI, UTF-8 sans BOM UTF-8, UCS-2 Little Endian, UCS-2 Big Endian.href="http://en.wikipedia.org/wiki/UTF-16" >lire
UCS-2 est l'UTF-16. J'ai enregistré le fichier de cette façon. Au niveau de la console, il ne imprimer la livre sterling devise signe ok (£), mais pas les caractères hébreux (מילה)
OriginalL'auteur kev
Je présume que tu veux dire "Lucida Console" quand vous dites "Lucida".
À l'aide de la
charmap
application que je ne pouvais pas trouver toutes hébreu caractères de la police. Je ne sais pas si la police était plus capable dans les versions antérieures de Windows, mais dans Windows 7 il semble y avoir rien en dehors des caractères Européens.Mon système a également Lucida Sans Typewriter qui inclut les caractères hébraïques. Malheureusement, la fenêtre Cmd n'apparaît pas comme un choix. Vous devez modifier le registre pour ouvrir plus de choix, comme le montre cette question sur le super-Utilisateur: https://superuser.com/questions/5035/how-to-change-the-windows-console-font
P. S. j'ai pu vérifier cette solution parce que Windows est en train d'être difficile. Voir https://superuser.com/questions/390933/how-to-add-a-font-to-the-cmd-window-choices-in-windows-7-64-bit
href="https://superuser.com/questions/950256/what-font-does-notepad-use-to-display-e-g-hebrew-when-it-claims-to-use-lucida" title="ce que la police ne le bloc-notes d'utilisation à l'écran e g hébreu quand il prétend utiliser lucida">superuser.com/questions/950256/...
OriginalL'auteur Mark Ransom
Comment obtenir un hébreu est activé installation de windows XP?
Tout d'abord, il s'agit d'un XP home SP3, l'hébreu est activé. Par cela je veux dire que c'est une norme XP-NOUS de l'installation, ou alors je crois, avec l'ajout de l'hébreu capacités de clavier et de l'écran. Je crois que tout le CD de XP pouvez installer un tel système. En particulier, je crois que ce qui suit est tout ce qui est nécessaire pour qu'un tel système:
1) Cliquez sur Détails et ajouter un clavier hébreu.
2) marquer avec un V Installer les fichiers de script complexe et à droite-à-gauche pour les langues (y compris les Thaïlandais).
Accepter, marquer avec un V, 10004 (MAC - arabe) et 10005 (Mac - hébreu). Vous ne savez pas si l'arabe est un must ici.
Maintenant à la console cmd
On doit ajouter explicitement Courier de Nouvelles polices de caractères pour les polices de la console de registre, comme décrit précédemment. Sinon, explicite les caractères hébraïques ne sera pas affiché.
Maintenant lors de la console cmd est ouvert, il y a tout à faire pour entrer des caractères hébreux est de permettre à l'entreprise de Messagerie de Nouvelles polices de caractères, et de changer le clavier d'un mode hébreu. Avoir des Fenêtres faites défiler les langues qu'il a pour le clavier, c'est facile. Soit répétitif appuyant sur de gauche Alt combiné avec à gauche les touches maj, ou avec la souris.
Comme une parenthèse, une commande dir montrera les noms de fichiers à caractères hébraïques. Cependant, on ne peut simplement émettre un
et de voir la sortie habituel si le fichier commence par une lettre hébraïque. Il doit être
Je suppose que le caractère astérisque ajoute la NOMENCLATURE de caractères unicode.
On peut aussi ouvrir le bloc-notes, saisie de caractères hébreux, enregistrez le fichier en UTF8, et exécutez la commande suivante dans la console de commandes:
Sauver le fichier en UTF8 est faite sur le bloc-notes enregistre l'écran.
OriginalL'auteur anonymous103