자바스크립트에 유니코드 문자 삽입
제 html 페이지에 ω(Omega)를 삽입해야 합니다.나는 HTML 이스케이프 코드를 사용해서 글을 쓸 수 있습니다.Ω
ω도 받고요HTML 요소에 넣을 때는 괜찮지만, 예를 들어 JS에 넣으려고 할 때는 괜찮습니다.var Omega = Ω
, 코드를 JS로 해석하고 전체가 작동하지 않습니다.이거 어떻게 하는지 아는 사람?
당신이 정말로 원하는 건Omega
오메가가 들어있는 줄?이 경우 다음과 같이 쓸 수 있습니다.
var Omega = '\u03A9';
(ω는 코드 포인트 U+03A9인 유니코드 문자이므로,03A9
이다.937
, 4개의 16진수로 쓰여진 것을 제외합니다.)
추가하기 위해 편집됨(2022년):이제 U+FFFF 위의 코드 포인트를 더 잘 지원하는 대체 형태가 존재합니다.
let Omega = '\u{03A9}';
let desertIslandEmoji = '\u{1F3DD}';
https://caniuse.com/mdn-javascript_builtins_string_unicode_code_point_escapes, 을 보면 2015년에 대부분 또는 모든 브라우저가 지원을 추가했기 때문에 상당히 안전하게 사용할 수 있을 것입니다.
@ruakh가 좋은 답변을 주었지만, 완성도를 위해 몇 가지 대안을 추가하겠습니다.
당신은 사실 사용할 수 있습니다.var Omega = 'Ω'
자바스크립트 코드가 다음과 같은 경우에만 사용할 수 있습니다.
- 에 있는 것처럼 이벤트 속성 내부에
onclick="var Omega = 'Ω'; alert(Omega)"
아니면 - 일순간에
script
XML 내용 유형과 함께 제공되는 XHTML(또는 XHTML + XML) 문서 내의 요소입니다.
이 경우, 코드는 (자바스크립트 인터프리터로 전달되기 전에) HTML 파서에 의해 파싱되어 문자 참조가 다음과 같이 될 것입니다.Ω
인정합니다. 제한은 대부분의 경우에 비현실적인 방법입니다.이러한 제한은 대부분의 경우에 이를 비현실적인 접근법으로 만듭니다.
다음과 같이 ω 문자를 입력할 수도 있습니다.var Omega = 'Ω'
, 그러나 문자 인코딩은 이를 허용해야 하며, 인코딩은 적절하게 선언되어야 하며, 이러한 문자를 입력할 수 있는 소프트웨어가 필요합니다.UTF-8 인코딩을 모든 것에 사용하고 이로 인해 발생하는 문제를 해결할 준비가 되어 있다면 이는 매우 유용한 해결책입니다.소스 코드를 읽을 수 있고, 이를 읽으면 코드 표기 대신 문자 자체가 바로 표시됩니다.반면, 다른 사용자가 사용자 코드로 작업을 시작할 경우 놀라움을 자아낼 수 있습니다.
으로.\u
와 같은 표기법var Omega = '\u03A9'
, 문자 인코딩과는 독립적으로 작동하며, 실제로는 거의 보편적입니다.U+ 즉나 U+FFFFFF될 수 .즉,\uffff
, 하지만 대부분의 사람들이 들어본 적이 있는 대부분의 캐릭터가 이 영역에 해당됩니다. ("더 높은" 캐릭터가 필요하다면 대리쌍이나 위의 두 가지 접근법 중 하나를 사용해야 합니다.)
를 사용하여 캐릭터를 구성할 수도 있습니다.String.fromCharCode()
method, 매개 변수로 유니코드 번호 전달, 에서와 같이 10진법으로var Omega = String.fromCharCode(937)
또는 에서와 같이 16진수로var Omega = String.fromCharCode(0x3A9)
U+ 이것은 U+FFFF까지 가능합니다.이 방법은 유니코드 번호가 변수에 있는 경우에도 사용할 수 있습니다.
한 가지 옵션은 문자 그대로 스크립트에 캐릭터를 넣는 것입니다. 예를 들어:
const omega = 'Ω';
이를 위해서는 브라우저에 올바른 소스 인코딩을 알려주어야 합니다. 자바스크립트의 유니코드를 참조하십시오.
그러나 이 작업을 수행할 수 없거나 원하지 않는 경우(예: 문자가 너무 특이하고 코드 편집기 글꼴에서 사용할 수 있을 것으로 예상할 수 없기 때문에), 가장 안전한 옵션은 새로운 스타일의 문자열 이스케이프를 사용하는 것일 수 있습니다.
const omega = '\u{3a9}';
// or:
const omega = String.fromCodePoint(0x3a9);
이것은 UTF-16에만 국한되지 않고 모든 유니코드 코드 포인트에 적용됩니다.이와 비교하여, 여기에 언급된 다른 접근법들은 다음과 같은 단점들을 가지고 있습니다.
- HTML 이스케이프(
const omega = 'Ω';
않은 상태로 합니다.) HTML 요소에서 빠져나오지 않은 상태로 렌더링된 경우에만 작동합니다. - 오래된 스타일의 문자열 이스케이프)
const omega = '\u03A9';
): UTF-16 String.fromCharCode
UTF-16에String.fromCharCode
한정된
정답은 맞지만 변수를 선언할 필요는 없습니다.문자열에는 다음과 같은 문자가 포함될 수 있습니다.
"This string contains omega, that looks like this: \u03A9"
안타깝게도 UTF-8을 표시하기 위해서는 여전히 ASCII의 코드가 필요하지만, UTF-8이 ASCII와 동일하게 될 날을 아직 기다리고 있습니다. 그리고 ASCII는 과거를 기억하는 것일 뿐입니다.
html에서 폰트로 멋진 스타일 아이콘 시스템을 구현하려고 할 때 이 질문을 발견했습니다.나에게 16진수 문자열을 제공하는 API가 있는데 폰트 패밀리와 일치하도록 유니코드로 변환해야 합니다.
내게 줄이 있다고 치자.const code = 'f004';
.에서 API내에서.간단한 문자열 연결은 할 수 없습니다(const unicode = '\u' + code;
시스템에서 유니코드임을 인식해야 하므로 실제로 시도하면 구문 오류가 발생합니다.
@coldfix는 를 사용한다고 언급했지만 문자열이 아닌 인수로 숫자를 사용합니다.
최종적으로 결승선을 통과하기 위해서는, 추가해서 통과하기만 하면 됩니다.16
(16진수는 16진수이므로) 두 번째 매개변수입니다.마침내 간단한 16진수 문자열에서 유니코드 문자열을 얻을 수 있습니다.
이게 제가 한 일입니다.
const code = 'f004';
const toUnicode = code => String.fromCodePoint(parseInt(code, 16));
toUnicode(code);
// => '\uf004'
함수()를 사용해 보십시오.
var code = "2710"
var char = Function("return '\\u"+code+"';")()
잘 작동합니다. 의 또는 "s" 또는 공백을 추가하지 마십시오.
예제에서 char는 "✐"입니다.
언급URL : https://stackoverflow.com/questions/13093126/insert-unicode-character-into-javascript
'programing' 카테고리의 다른 글
윈도우즈에서 서명되지 않은 __int64의 printf 형식 (0) | 2023.10.22 |
---|---|
WordPress 내에 응답 테이블을 만듭니다. (0) | 2023.10.22 |
워드프레스 열기ID가 StackOverflow와 함께 작동하지 않습니다. (0) | 2023.10.22 |
각도에서 td 속성 colspan으로 속성 바인딩을 사용하는 방법은 무엇입니까? (0) | 2023.10.17 |
varchar를 무제한 길이로 설정하는 방법은? (0) | 2023.10.17 |