Estou encontrando Unicode para caracteres especiais na pesquisa de FileFormat.Info .
Alguns caracteres são renderizados como os glifos clássicos em preto e branco, como ⚠ (sinal de aviso \u26A0
ou ⚠
). Eles são preferíveis, já que posso aplicar estilos CSS (como cores) a eles.
Outros são renderizados como emojis de desenho animado mais recentes, como ⌛ (ampulheta \u231B
ou ⌛
). Eles não são preferíveis, já que não posso estilizá-los totalmente.
Parece que o navegador está fazendo essa alteração, já que consigo ver o glifo da ampulheta no Mac Firefox, mas não no Mac Chrome nem no Mac Safari.
Existe uma maneira de forçar os navegadores a exibir as versões mais antigas (monótona plana)?
Atualização : Parece que (a partir de comentários abaixo) há um seletor de apresentação do texto , FE0E
, disponível para impor texto-vs-emoji. O seletor é concatenado como um sufixo sem espaço no código do personagem, como ⌛︎
para HTML hexadecimal ou \u231B\uFE0E
para JS. No entanto, simplesmente não é respeitado por todos os navegadores (por exemplo, Chrome e Edge).
︎
e\uFE0E
estão corretos (2 e 8) e funcionam bem no Safari (8 e 9), mas como diz a resposta: o suporte do navegador está irregular e o Chrome (46) está completamente quebrado.Respostas:
Acrescente o caractere do seletor de variação Unicode para forçar o texto, VS15
︎
,.Isso força o caractere anterior a ser renderizado como texto em vez de um símbolo de Emoji.
Resultado: 🔒︎
Saiba mais em: símbolo Unicode como texto ou emoji
fonte
︎
truque não funciona comigo para certas fontes. Estou tendo dificuldade em encontrar uma fonte que possa ser razoavelmente instalada em todas as máquinas (Windows, iOS, Mac, Android, etc).Eu tinha um caractere Unicode no
content
de aspan::before
e tinha ofont-family
dospan
definido como "Segoe UI Symbol". Mas o Chrome usou "Segoe UI Emoji" como fonte para renderizá-lo.No entanto, quando eu defini o
font-family
como "Segoe UI Symbol" explicitamente para ospan::before
, em vez de apenas para ospan
, então funcionou.fonte
Para uma solução somente CSS para evitar que o iOS exiba emojis, você pode usar o
font-family: monospace
padrão para a variante de texto do glifo em vez da variante de emoji.fonte
As fontes do Android não são ricas como você pode esperar. Os arquivos de fonte não têm esses glifos exóticos e o Android tem um hack para poucos caracteres sem glifos. Eles são substituídos por ícones.
Portanto, a solução é integrar o site a uma fonte web (woff). Crie um novo arquivo de fonte com FontForge e escolha o glifo necessário do TTF serif livre, por exemplo. Cada glifo leva 1k. Gerar arquivo woff.
Prepare CSS simples para importar a família de fontes personalizadas.
style.css:
arquivo index.html:
fonte
Se sua principal preocupação é forçar a exibição monocromática para que o emoji não se destaque muito do texto, os filtros CSS, sozinhos ou em combinação com o seletor de variação Unicode, podem ser algo que você queira.
Ao contrário do seletor de variação, não deve importar como o emoji é renderizado, porque os filtros CSS se aplicam a tudo. (Eu os uso para ícones de "tipo de link" em tons de cinza em formato PNG em hiperlinks que foram modificados para apontar para a Máquina Wayback.)
Basta observar a advertência . Você não pode substituir o filtro de um elemento pai em um filho, portanto, essa técnica não pode ser usada para dimensionar um parágrafo em tons de cinza e, em seguida, recolorir os links dentro dele. 😢
... ainda assim, é útil para situações em que você fará de tudo um hiperlink ou não permitirá a marcação avançada dentro dele. (por exemplo, títulos e descrições)
No entanto, isso não funcionará a menos que CSS realmente seja aplicado, então darei uma segunda opção que é mais confiável em
<title>
elementos do que o seletor de variação Unicode (estou olhando para você GitHub. Não gosto de ícones falsos no meu guias do navegador):Se você estiver colocando uma string fornecida pelo usuário em um
<title>
elemento, filtre o emoji junto com qualquer negrito / itálico / sublinhado / etc. marcação. (Sim, para aqueles que não perceberam, o padrão exige que o conteúdo de<title>
seja um texto simples, além dos escapes do E comercial e todos os navegadores em que testei interpretam as tags como texto literal.)As duas maneiras que posso pensar são:
emoji
pacote para o banco de dados, mas Rust é um bom exemplo de linguagem onde a iteração de clusters de grafemas é rápida e fácil por meio de uma caixaunicode-segmentation
.)fonte
O Google Chrome, versão para desktop 75, parece eliminar a ambigüidade de sua abordagem para renderizar caracteres Unicode com base no primeiro escape Unicode que encontra ao carregar uma página. Por exemplo, quando analisado como o primeiro escape HTML Unicode em uma fonte de página e não tendo equivalente emoji, & # 9207; parece esclarecer para o Chrome que a página contém escapes que não devem ser renderizados como emoji.
fonte
Expandindo a resposta de ssokolow , usar um filtro é bom e pelo menos torna os contornos visíveis em vez de usar uma fonte simples, mas converter uma cor RGB em uma sequência de filtros CSS é muito difícil quando você quer usar uma cor específica.
Uma opção melhor (embora bastante prolixo) é usar o
<feColorMatrix>
filtro SVG. Combinado com o filtro de tons de cinza e o esquema de URI de dados, você pode representar a cor via RGB e CSS in-line:Infelizmente, você não pode interpolar a URL com dados (obtidos de atributos ou variáveis), mas pelo menos você não precisa calcular filtros CSS de RGB.
fonte
Não sei como desligar a renderização do tipo emoji. Normalmente, eu uso uma fonte de ícone, como fonte awesome ou glyphicons (vem com Bootstrap 3).
A vantagem de usá-los sobre os caracteres Unicode é que
A única desvantagem é que é mais uma coisa para o navegador baixar ao visualizar sua página.
fonte
Para mim no OSX, a solução foi definir a família de fontes para
EmojiSymbols
fonte
Nenhuma das soluções acima funcionou para a extensão "Emoji para Google Chrome".
Então, como solução alternativa , fiz uma captura de tela do caractere Unicode 'BALLOT BOX WITH CHECK' (U + 2611) e adicionei-o como imagem com php:
Consulte: https://spacetrace.org/man_card.php?tec_id=21&techname=multi-emp-vessel
fonte