2.5.17
https://codepen.io/avertes/pen/LYYpNRe
https://jsfiddle.net/50wL7mdz/756973/
La sortie doit contenir un espace insécable
La sortie affiche
Dans l'exemple fourni, j'ai fait 3 cas
 
est transformé en
NON-BREAKING SPACE
est échappé.HTMLElement
normal avec document.querySelector('#test').title
le caractère n'est pas d'échappement.Remarque : lors de la copie du caractère d'espace insécable, il peut se transformer en un espace régulier dans le presse-papiers. Pour cela, utilisez https://en.wikipedia.org/wiki/Non-breaking_space#Keyboard_entry_methods pour vous assurer de la manière d'insérer le caractère.
J'ai ajouté un nouvel exemple - où dans une liste d'entités html (y compris d'autres espaces et des caractères de largeur nulle) - seulement
non décodé.
J'ai aussi remarqué que dans mathiasbynens / he il y a deux entrées pour
une sans simicolon et une avec simicolon.
Peut-être une photo dans le noir, mais cela pourrait-il avoir une influence sur le résultat ci-dessus?
J'ai essayé d'utiliser mathiasbynens / he v1.1.1 pour trouver des incohérences avec
, mais je n'ai pas pu en trouver.
J'ai essayé de dupliquer mes jsfiddles précédents, pour voir si
réagirait différemment.
Si quelqu'un peut me donner des indications pour savoir où rechercher cette erreur, je suis plus qu'heureux de l'essayer.
J'apprécierais également beaucoup toute réponse sur la question.
Cela me semble être un bug - un correctif serait bien
J'ai remarqué des problèmes avec ×
à l'occasion. disons qu'un accessoire de composant a une valeur par défaut de ×
, qui est rendu dans le composant (v-html). Lors du rendu, il affiche le caractère réel x
et provoque une caution d'hydratation SSR.
Autre exemple: https://jsfiddle.net/onbzk0m6/ (caractère)
Ouais - cela semble être lié à la façon dont Vue analyse les attributs html en général.
J'ai fait un exemple similaire basé sur l'exemple @approached
https://jsfiddle.net/onbzk0m6/3/
comme solution de contournement, essayez de mettre le code d'échappement JS pour
- \xa0
trouvé ici , a travaillé pour moi dans la fonction nonbreakinspacification
public static noBreakingSpaces(str: string): string {
return str.replace(' ', '\xa0');
}
les chaînes retournées par cette fonction sont rendues avec  
s au lieu d'espaces.
Je suis tombé sur le même problème: l'entité html donne "" comme texte lorsqu'elle est utilisée dans des modèles au lieu du trait d'union souple. Idem pour "" et autres.
Vue 2.6.10
pour les personnes qui recherchent une solution de contournement pour cela:
Lors du passage d'une chaîne avec des espaces insécables comme accessoire, je viens de remplacer les espaces par des caractères peu susceptibles de faire partie de la chaîne, dans mon cas 'zzz'
var newName = program_name.replace(/\s/g,'zzz');
Ensuite, dans le composant réel où j'ai besoin d'afficher ou d'utiliser cet accessoire, j'ai une fonction calculée qui annule l'action ci-dessus et remplace à nouveau les caractères d'espace réservé par des espaces
correctedProgramName(){ //this reverses the space-replacing we had to do in reporting-dashboard.js
let correctedProgramName = this.program_name.replace(/zzz/g, ' ')
return correctedProgramName
}
@posva Désolé de vous déranger, j'ai trouvé une solution à ce problème.
Après ma correction, le comportement de Vue sera le même que HTML, tout comme la capture d'écran ci-dessous,
Puis-je résoudre ce problème et faire une demande d'extraction?
Bien sûr @JuniorTour
Ce problème peut être lié à https://github.com/vuejs/vue/issues/10485 et https://github.com/vuejs/vue/issues/11059
Il vaut donc la peine de jeter un œil aux PR existants
Commentaire le plus utile
comme solution de contournement, essayez de mettre le code d'échappement JS pour
-\xa0
trouvé ici , a travaillé pour moi dans la fonction nonbreakinspacification
les chaînes retournées par cette fonction sont rendues avec
 
s au lieu d'espaces.