2.5.17
https://codepen.io/avertes/pen/LYYpNRe
https://jsfiddle.net/50wL7mdz/756973/
Вывод должен содержать неразрывный пробел
Вывод показывает
В приведенном примере я сделал 3 случая
 
превращается в
NON-BREAKING SPACE
.HTMLElement
с document.querySelector('#test').title
символ не экранируется.Примечание . При копировании неразрывного пробела он может превратиться в обычное пространство в буфере обмена. Для этого используйте https://en.wikipedia.org/wiki/Non-breaking_space#Keyboard_entry_methods, чтобы убедиться, как вставить символ.
Я добавил новый пример - где в списке сущностей html (включая другие пробелы и символы нулевой ширины) только
не декодируется.
Также я заметил, что в mathiasbynens / he есть две записи для
одна без simicolon и одна с simicolon.
Может быть, выстрел в темноте, но может ли это повлиять на результат выше?
Я пробовал использовать mathiasbynens / he v1.1.1, чтобы найти какие-либо несоответствия с
, но не смог их найти.
Я пробовал дублировать свои предыдущие jsfiddles, чтобы посмотреть, отреагирует ли
другому.
Если кто-нибудь может дать мне несколько указаний о том, где искать эту ошибку, я более чем счастлив попробовать.
Я также был бы очень признателен за любой ответ по этому вопросу.
Для меня это ошибка - было бы неплохо исправить
Иногда я замечал проблемы с ×
. скажем, опора компонента имеет значение по умолчанию ×
, которое отображается в компоненте (v-html). При рендеринге он показывает фактический символ x
и вызывает залог гидратации SSR.
Другой пример: https://jsfiddle.net/onbzk0m6/ (символ)
Да, похоже, это связано с тем, как Vue анализирует атрибуты html в целом.
Я сделал аналогичный пример на основе примера @approached
https://jsfiddle.net/onbzk0m6/3/
в качестве обходного пути попробуйте поместить escape-код JS для
- \xa0
нашел здесь , работал у меня в функции без взлома
public static noBreakingSpaces(str: string): string {
return str.replace(' ', '\xa0');
}
строки, возвращаемые этой функцией, отображаются с  
s вместо пробелов.
Я наткнулся на ту же проблему: сущность html при использовании в шаблонах вместо мягкого дефиса приводит к тексту "". То же самое для "" и других.
Vue 2.6.10
для людей, которые ищут обходной путь для этого:
При передаче строки с неразрывными пробелами в качестве опоры я просто заменил пробелы символами, которые вряд ли будут частью строки, в моем случае 'zzz'
var newName = program_name.replace(/\s/g,'zzz');
Затем в фактическом компоненте, где мне нужно отображать или использовать эту опору, у меня есть вычисляемая функция, которая отменяет указанное выше действие и снова заменяет символы заполнителя пробелами.
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 Извините за беспокойство, я нашел решение этой проблемы.
После моего исправления поведение Vue будет таким же, как и в HTML, как на скриншоте ниже,
Могу ли я решить эту проблему и отправить запрос на слияние?
Конечно @JuniorTour
Эта проблема может быть связана с https://github.com/vuejs/vue/issues/10485 и https://github.com/vuejs/vue/issues/11059.
Так что стоит взглянуть и на существующие PR.
Самый полезный комментарий
в качестве обходного пути попробуйте поместить escape-код JS для
-\xa0
нашел здесь , работал у меня в функции без взлома
строки, возвращаемые этой функцией, отображаются с
 
s вместо пробелов.