2017-09-21 1 views
8

되는 HTML 캐릭터 엔티티 𝕒 :HTML 문자 엔티티와 델파이의 숫자가 같은가요?

<!DOCTYPE html> 
<html> 
<style> 
body { 
    font-size: 20px; 
} 
</style> 
<body> 

<p>I will display &#120146;</p> 

</body> 
</html> 

이러한 확장 문자 기호의 일부는 동일한 숫자 값에서 생성 될 수

enter image description here

이 HTML 코드 번호 120,146에서 생성 될 수있다 HTML과 Delphi 10.1.2에서 모두 사용할 수 있습니다. 예를 들어 :

모두 &#174;

Chr(174) ®

모두 &#163;Chr(163)

£은 "파운드"기호 문자를 작성하는 "등록 상표"기호 문자 등을 만들 수는

불행하게도,이입니다 위의 숫자가 아닌 경우 델파이의 Chr(120146)은 "재미있는 중국어 기호"를 만듭니다.

그럼 위의 &aopf; 문자 기호를 에서 Delphi로 만들려면 어떻게해야합니까? 그리고 위의 숫자가 HTML과 Delphi 사이의 동등성이 작동하거나 작동하지 않는 숫자 범위는 무엇입니까?

답변

11

이것은 'MATHEMATICAL DOUBLE-STRUCK SMALL A' (U+1D552)입니다. Basic Multilingual Plane의 바깥에 있으므로 UFT-16에서 서로 게이트 쌍을 사용하여 인코딩됩니다. 즉, 두 개의 UTF-16 문자 요소가 필요합니다.

시도를보십시오 : Chr(120146). 자, 코드가 성공할 수 없다는 것을 알려주는 120146 > high(Word) (= 65535). 각 UTF-16 문자 요소의 크기는 16 비트입니다. 컴파일러가 이것에 대해 경고한다면 그것은 좋을 것입니다. 그거야?

위의 링크는 인코딩 방법을 알려줍니다. 그것은이 서로 게이트 쌍에 의해 주어진다 :

0xD835 0xDD52

가장 쉽게로 기록 될 것입니다 델파이에서

:

#$D835#$DD52 

당신이 UTF-32 코드와 함께 시작하는 경우 숫자 값이면 System.Character 단위의 TCharacter.ConvertFromUtf32을 사용하여 델파이 문자열로 변환 할 수 있습니다.

TCharacter.ConvertFromUtf32($1D552) 

분명히이 함수에 대한 인수는 변수가 될 수 있습니다. 위의 유니 코드 용어의 대부분은 당신에게 알 수없는 경우

,이 기사를 읽기 :

관련 문제