J'essaie de construire un bookmarklet et j'ai été claqué avec ce problème que j'étais capable de comprendre: un caractère Safari heureusement était celui qui m'a dit que c'était un Je modifie le code dans l'éditeur de texte sublime 2 et de la copie d'une manière ou d'une autre (j'ai également essayé TextEdit) ne parvient pas à le supprimer. p>
Y a-t-il une sorte de site Web quelque part qui dépendra tous les caractères autres que ASCII? p>
Lorsque j'essaie de sauvegarder en tant que ISO 8859 mais cela le sauvera comme UTF-8 "en raison de caractères non pris en charge". p>
... ouais. c'est le but. Débarrassez-vous de mes mauvais caractères non pris en charge. p>
Qu'est-ce que je suis censé faire? Modifier mon fichier dans un éditeur Hex? P>
fyi je l'ai résolu en rétaminant le code (qui est originaire de ce site à la manière). P> \ u8203 code>, que Chrome me dit peu de temps dans mon bloc de code (lors du colle dans la console JS) est un "caractère non valide illégal". p>
\ u8203 code>. p>
4 Réponses :
Eh bien, le moyen le plus simple que je puisse penser est d'utiliser ou en utilisant sed code>
tr code> p>
tr -cd '\11\12\15\40-\176' < old_script.js > new_script.js
Cela correspondra-t-il même au caractère (qui n'est pas dans la gamme 128-255 ASCII)?
@Stevenlu, d'accord, pense à cela comme une liste blanche. Vous voulez garder uniquement des caractères ASCII, de sorte que vous ne vous souciez pas vraiment de \ u8203 code>. Je vais expliquer plus loin dans la réponse.
@Stevenlu, apparemment j'ai commis une erreur. J'ai assorti le contraire de ce que vous voulez. Remarque: vous pouvez faire la même chose avec regex code> de n'importe quelle langue, avez-vous
php code> ou
perl code> installation?
Donc, j'accepte que sed code> ou
tr code> est une solution solide mais qu'en est-il quand je suis sous Windows?
@dda bien, oui. C'est ce que l'exemple original d'Adnan a fait
Je répète. ASCII est de 0 à 127. ASCII n'a pas de point de code de code ci-dessus. Donc, l'expression que vous avez utilisée, dans la plage d'ASCII 128-255 code> n'a pas de sens.
@DDA vous êtes correct. J'ai confronté ASCII avec la notion vague de "8 bits caractères".
J'ai changé d'accepter de cette réponse car en fonction d'une page Web et de divers shenanigans de presse-papiers Copy-coller-coller sont légèrement asinés. Il est préférable de garder les choses simples, et la meilleure façon de garder simple est d'avoir une petite utilité de ligne de commande pouvant être utilisée pour analyser un fichier de code source pour les caractères voyous. Ensuite, on peut et devrait utiliser I> utiliser un éditeur hexagonal pour faire la saleté.
Y a-t-il une sorte de site Web quelque part qui dépendra tous les caractères autre que ASCII? P>
Vous pouvez utiliser ce site p>
Vous pouvez recréer le site Web à l'aide de ce code: p>
xxx pré> blockQuote>
Merci. Court et doux. Peut-être que je vais mettre en œuvre cela sur mon site Web. J'ajouterai quelques friandises comme un rapport dont les personnages ont été abandonnés et où ils étaient.
La morale de l'histoire est de ne pas copier du tampon JavaScript à Jsfiddle. Ils utilisent des personnages invisibles pour faire des choses étranges là-bas.
C'est une réponse et elle répond à la question. Mais c'est juste un lien qui peut devenir mort. Ajoutez votre code à la réponse afin qu'il puisse être utile pour quand cela se produit ...
solution nontechnique: collez votre texte dans un nouveau message électronique dans Gmail et cliquez sur TX (formatage clair, dans le menu de formatage). Travaillé pour moi. P>
Vous pouvez faire la même chose avec quelque chose comme NOTEPAD.EXE. J'ai tendance à le faire mais avec Vim (je pourrais coller dans un texte sublime, puis enregistrer en tant que fichier, puis ouvert de vim)
Vous pouvez utiliser regex pour tout filtrer sur 0-127. Par exemple en JavaScript: x00 = 0, x7f = 127 p> p>
Cela ne conserve que le jeu de caractères ASCII, alors supprime tous les caractères unicode non occidentaux. Nous voulons seulement supprimer les caractères de contrôle, pas des lettres étrangères.
Je viens de faire des googles et j'ai trouvé Ceci et Ceci
Que diriez-vous de quelque chose qui traite mon presse-papiers. Ou un site Web avec un ensemble d'entrées de texte que je peux copier / coller avec.
Je ne pense pas que ce soit possible avec JavaScript uniquement (je suppose que c'est ce que vous utilisez, à cause de la balise de votre question). Vous pouvez toutefois écrire un petit script JavaScript avec une petite aide de Flash (je crois qu'il existe des outils prêts pour cela) qui liront le presse-papiers puis effectuera le remplacement de Regex puis écrivez à nouveau dans le presse-papiers.
Je suis sûr qu'il est facile de faire une boucle dans JS qui filtre des caractères dans une gamme 1-127 ASCII.
Attendez attendre, parlez-nous de personnages d'une chaîne? ou des caractères de votre code lui-même, comme
si [*] (true) {} code> où
* code> est le caractère invisible?
Caractères en général. Le code que j'écris a tendance à ne rien exiger de rien en dehors de l'ASCII. En fait, les seuls personnages que je veux garder sont ceux accessibles sur un clavier QWERTY. Pourquoi devrais-je écrire dans une langue que je ne peux pas taper facilement? Considérez ce qui est arrivé à moi: un caractère invisible (le
\ u8203 code>) est resté dans mon fichier et il suit le code dans le presse-papiers. Y compris le fichier JS est normalement bien mais lorsque je colle le même code exact que je viens de copier dans la console, je reçois "caractère illégal omgwtf" du navigateur sans numéro de ligne.
> Y a-t-il une sorte de site Web quelque part qui dépendra tous les caractères> autres que ASCII? Vous pouvez utiliser Ce site