유니 코드 문자가 JavaScript의 HTML에서 이모티콘으로 렌더링되는 것을 방지하는 방법은 무엇입니까?


119

FileFormat.Info의 검색 에서 특수 문자에 대한 유니 코드를 찾고 있습니다.

일부 문자는 ⚠ (경고 기호 \u26A0또는 ⚠) 와 같은 고전적인 흑백 글리프로 렌더링됩니다 . CSS 스타일 (예 : 색상)을 적용 할 수 있기 때문에 선호됩니다.

경고 글리프 이미지

다른 사람들은 ⌛ (모래 시계 \u231B또는 ⌛) 와 같은 최신 만화 이모티콘으로 렌더링 합니다. 나는 그것들을 완전히 스타일링 할 수 없기 때문에 바람직하지 않습니다.

모래 시계 이모티콘 이미지

Mac Chrome이나 Mac Safari가 아닌 Mac Firefox에서 모래 시계 문자를 볼 수 있기 때문에 브라우저가 이러한 변경을 수행하는 것 같습니다.

브라우저가 이전 버전 (단색)을 표시하도록 강제하는 방법이 있습니까?

업데이트 : 그것은 (아래 설명에서) 보이는이 텍스트 프리젠 테이션 선택기 , FE0E, 사용할 수있는 텍스트 - 대 - 이모티콘을 적용합니다. 선택자는 ⌛︎HTML 16 진수 또는 \u231B\uFE0EJS 와 같이 문자 코드에 공백없이 접미사로 연결됩니다 . 그러나 모든 브라우저 (예 : Chrome 및 Edge) 에서 이를 인정하지는 않습니다 .


CSS 규칙에서 글꼴 모음을 설정합니까?
G-Cyrillus


1
@janaspage ︎이며 \uFE0E정확하고 (2 및 8) Safari (8 및 9)에서 잘 작동하지만 대답처럼 브라우저 지원이 불안정하고 Chrome (46)이 완전히 손상되었습니다.
一二三

2
이모티콘 렌더링을 제어하는 ​​표준 방법은 없습니다.
nwellnhof

1
이 문자에 대한 글리프가 포함 된 글꼴을 적용하고 글리프가 원하는 방식으로 보이는 글꼴을 적용하기 만하면됩니다 (색상 없음, 모양 없음 또는 원하는대로).
ShreevatsaR

답변:


133

추가] 유니 코드 변화 선택 , 텍스트, VS15을 강제하기위한 문자 ︎.
이렇게하면 이전 문자가 이모티콘 기호가 아닌 텍스트로 렌더링됩니다.

<p>🔒&#xFE0E;</p>

결과 : 🔒︎

자세히 알아보기 : 유니 코드 기호 (텍스트 또는 그림 이모티콘)


1
이것은 매우 도움이되었고, 이것이 제가 지난번에 그것을 찬성 한 이유입니다. 나는 그림 이모티콘을 붙여 넣을 수있는 방법을 궁금해 하고 내가 쓰고있는 페이스 북 광고로이 보이지 않는 문자를? : PS 이것은 또한 흥미로웠다 apple.stackexchange.com/a/240450/53510
라이언

3
&#xFE0E;트릭이 특정 글꼴에 대해 작동하지 않는다는 것을 방금 깨달았습니다 . 모든 컴퓨터 (Windows, iOS, Mac, Android 등)에 설치 될 것으로 합리적으로 예상 할 수있는 글꼴을 찾는 데 어려움을 겪고 있습니다.
라이언

12
이 솔루션은 입력 필드에서 발생할 수도있는 기호에는 실제로 허용되지 않습니다. 나는 논리에 사용되는 기호 ↔ 에이 문제를 겪고 있으며 왜 누군가가 이것이 이모티콘이어야한다고 생각하는지 이해하지 못합니다!
멋진

2
다음 페이지는 이모티콘 바로 뒤에 특수 문자를 복사하여 붙여 넣어 스타일링이 아닌 평평하게 보이도록하는 데 유용합니다. 예를 들어 💬 대신 💬︎ 및 🌟 대신 ⌛︎ 및 🔒 대신 ⌛︎ (장치에 따라 다름) unicode-symbol.com/u/FE0E.html
Ryan

15
이것은 나를 위해 예제에서 이모티콘으로 렌더링되며 Mac 10.11.6의 크롬 71입니다.
lahwran

13

나는에서 유니 코드 문자했다 content의를 span::before하고, 나는 있었다 font-familyspan"Segoe UI 기호"로 설정합니다. 하지만 크롬은 "Segoe UI Emoji"를 글꼴로 사용하여 렌더링했습니다.

내가 설정 그러나, font-family"Segoe UI 기호"로 명시 적으로 에 대한 span::before것이 아니라 단지보다위한 span, 그것은했다.


특히 이전의 보이지 않는 문자 방법은 대부분의 주요 브라우저에서 적용되지 않기 때문에 정답이어야합니다.
Sarah C. Corriher

2

iOS에서 이모티콘을 표시하지 않도록하는 CSS 전용 솔루션의 font-family: monospace경우 이모티콘 변형이 아닌 글리프의 텍스트 변형을 기본값으로 사용할 수 있습니다 .


1

Android 글꼴은 예상대로 풍부하지 않습니다. 글꼴 파일에는 이러한 이국적인 글리프가 없으며 Android에는 글리프가없는 몇 가지 문자에 대한 해킹이 있습니다. 아이콘으로 대체됩니다.

따라서 해결책은 사이트를 웹 글꼴 (woff)과 통합하는 것입니다. FontForge로 새 글꼴 파일을 만들고 예를 들어 무료 serif TTF에서 필요한 글리프를 선택하십시오. 모든 글리프에는 1k가 필요합니다. woff 파일을 생성합니다.

사용자 정의 글꼴 패밀리를 가져 오기 위해 간단한 CSS를 준비하십시오.

style.css :

@font-face {
  font-family: 'Exotic Icons';
  src: url('exotic-icons.woff') format('woff');
}

.exotic-symbol-font {
    position: relative;
    top: 1px;
    display: inline-block;
    font-family: 'Exotic Icons';
    font-style: normal;
    font-weight: normal;
    line-height: 1;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

index.html 파일 :

<html>
  <head>
    <meta charset="utf-8">
    <link href="style.css" rel="stylesheet"></head>
    <title>Test custom glyphs</title>
  </head>
  <body>
    <table>
      <tr>
        <td class="exotic-symbol-font">
            😭  &#x2660; a  g
        </td>       
      </tr>
    </table>
  </body>
</html>

1

이모지가 텍스트에서 너무 눈에 띄지 않도록 단색 디스플레이를 강제하는 것이 주요 관심사라면 CSS 필터를 단독으로 또는 유니 코드 변형 선택기와 함께 사용하는 것이 좋습니다.

p.gscale { 
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
}
a {
  color: #999;
  -webkit-filter: grayscale(100%) sepia(100%) saturate(400%) hue-rotate(170deg);
   filter: grayscale(100%) sepia(100%) saturate(400%) hue-rotate(170deg);
}
<p class="gscale">You've now got emoji display on 🔒lockdown🔒.</p>

<p>External Link: <a href="https://knowyourmeme.com/memes/party-hard">celebrate 🎉</a></p>

변형 선택기와 달리 CSS 필터가 모든 것에 적용되기 때문에 이모티콘이 어떻게 렌더링되는지는 중요하지 않습니다. (나는이 아이콘을 사용하여 Wayback Machine을 가리 키도록 수정 된 하이퍼 링크의 PNG 형식 "링크 유형"아이콘을 회색조로 표시합니다.)

다만 주의 할 마음 . 자식에서 부모 요소의 필터를 재정의 할 수 없으므로이 기술을 사용하여 단락을 회색조로 표시 한 다음 단락 내의 링크를 다시 색상화할 수 없습니다. 😢

... 그래도 모든 것을 하이퍼 링크로 만들거나 그 안에 풍부한 마크 업을 허용하지 않는 상황에 유용합니다. (예 : 제목 및 설명)

그러나 이것은 CSS가 실제로 적용되지 않는 한 작동하지 않으므로 <title>유니 코드 변형 선택기보다 요소 에서 더 안정적인 두 번째 옵션을 제공 할 것입니다 (GitHub를보고 있습니다. 브라우저 탭) :

사용자가 제공 한 문자열을 <title>요소에 넣는 경우 굵게 / 기울임 꼴 / 밑줄 등과 함께 그림 이모티콘을 필터링합니다. 마크 업. (예, 그것을 놓친 사람들을 위해 표준은 <title>앰퍼샌드 이스케이프와 내가 테스트 한 모든 브라우저에서 모든 태그를 리터럴 텍스트로 해석하는 것을 제외하고 일반 텍스트로 내용을 요구합니다.)

내가 생각할 수있는 두 가지 방법은 다음과 같습니다.

  1. 최신 버전의 유니 코드가 이모티콘과 수정자를 넣는 블록과 일치 하는 수동으로 유지 관리되는 정규식 을 직접 사용합니다 .
  2. 자소 클러스터를 반복 하고 인식 된 이모 지 코드 포인트를 포함하는 모든 것을 버립니다 . (grapheme 클러스터는 기본 글리프와 모든 분음 부호 및 가시적 문자를 구성하는 기타 수정 자입니다. 링크 된 예제는 Python의 정규식 엔진을 사용하여 토큰 화 한 다음 emoji데이터베이스 용 패키지를 사용하지만 Rust는 언어의 좋은 예입니다. 반복되는 자소 클러스터는 unicode-segmentation.) 와 같은 크레이트를 통해 빠르고 쉽습니다 .)

0

데스크톱 버전 75 인 Google 크롬은 페이지를로드하는 동안 발생하는 첫 번째 유니 코드 이스케이프를 기반으로 유니 코드 문자를 렌더링하는 방식을 모호하게 만드는 것 같습니다. 예를 들어 페이지 소스에서 첫 번째 HTML 유니 코드 이스케이프로 구문 분석되고 이에 상응하는 이모티콘이없는 경우 & # 9207; 페이지에 이모티콘으로 렌더링되지 않는 이스케이프가 포함되어 있음을 Chrome에 명확히하는 것 같습니다.


0

ssokolow의 답변을 확장 하면 필터를 사용하는 것이 좋고 최소한 간단한 글꼴을 사용하는 대신 윤곽선을 표시하지만 특정 색상을 사용하려는 경우 RGB 색상을 일련의 CSS 필터로 변환하는 것은 매우 어렵습니다.

더 좋은 옵션은 <feColorMatrix>SVG 필터 를 사용하는 것 입니다. 그레이 스케일 필터 및 데이터 URI 체계와 결합하면 RGB 및 인라인 CSS를 통해 색상을 나타낼 수 있습니다.

.violet {
  color: white;
  filter: grayscale(100%) url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'><filter id='f'><feColorMatrix type='matrix' values='0.78 0 0 0 0  0 0.082 0 0 0  0 0 0.522 0 0  0 0 0 1 0'/></filter></svg>#f");
}

불행히도 (속성 또는 변수에서 가져온) 데이터로 URL을 보간 할 수는 없지만 적어도 RGB에서 CSS 필터를 계산할 필요는 없습니다.


-2

이모 지 유형 렌더링을 끄는 방법을 모르겠습니다. 보통 저는 font awesome 또는 glyphicons (Bootstrap 3과 함께 제공됨) 와 같은 아이콘 글꼴을 사용합니다 .

유니 코드 문자에 대해 이들을 사용하는 이점은

  1. 사이트 디자인에 맞도록 다양한 스타일 중에서 선택할 수 있습니다.
  2. 브라우저에서 일관됩니다 (유니 코드 별표 문자를 시도해 본 적이 있다면 IE와 다른 브라우저에서 차이가 있음을 알 수 있습니다).
  3. 또한 사용하려는 유니 코드 문자처럼 완전히 스타일을 지정할 수 있습니다.

유일한 단점은 브라우저가 페이지를 볼 때 다운로드 할 수 있다는 것입니다.


-2

OSX에서 해결책은 font-family를 EmojiSymbols


-3

위의 솔루션 중 어느 것도 "Google 크롬 용 이모티콘"확장 프로그램에서 작동하지 않았습니다.

그래서 해결 방법으로 유니 코드 문자 'BALLOT BOX WITH CHECK'(U + 2611)의 스크린 샷을 만들고 PHP를 사용하여 이미지로 추가했습니다.

 $ballotBoxWithCheck='<img src="pics/U2611.png" style="height:11px;margin-bottom:-1px">'; # &#9745; or /U2611

여기에 이미지 설명 입력

참조 : https://spacetrace.org/man_card.php?tec_id=21&techname=multi-emp-vessel


텍스트 도구 (적절한 라이센스가 선택된 글꼴 사용)를 사용하여 Inkscape에 붙여 넣은 다음 자동 추적을 실행하여 원하는 크기로 확장 할 수있는 SVG를 얻을 수 있습니다. (가능한 한 작게 만들려면 SVG 축소기를 수동 편집과 함께 사용하여 자동 추적이 실패한 경로의 노드 수를 줄이십시오.)
ssokolow
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.