2014-10-08 7 views
0

숫자를 UTF8 문자로 변환하는 방법은 무엇입니까?숫자를 UTF8 문자로 변환하는 방법은 무엇입니까?

런타임 중에 입력 매개 변수가 다양하기 때문에 CTFE 함수가 아니어야합니다. 나는 이것을위한 std 함수가 있어야한다고 생각하지만, 그것을 찾을 수 없다. 고마워.

import std.stdio, std.conv; 

char utf8_RT(int nbr) 
{ 
    return to!char(nbr); 
} 
void main(string args[]) 
{ 
    assert(utf8_RT(2665) == '\u2665'); 
} 

분명히 실패합니다.

+0

"number", "convert"및 "UTF8 char"은 무엇을 의미합니까? (UTF-8은 유니 코드의 전송 인코딩이며 문자 자체가 아닌 문자의 인코딩을 정의합니다.) –

답변

3

"UTF8 char"의 의미를 모르겠습니다.

UTF-32 문자 (예 : dchar)를 원하면 dchar(2665)을 사용하면됩니다.

UTF-8 문자열 (하나 이상의 유니 코드 문자가 하나 이상의 UTF-8 코드 단위, 즉 바이트로 인코딩 됨)을 원하면 to!string(dchar(2665))을 사용할 수 있습니다. import std.conv을 잊지 마세요.

2665int 변수의 이름으로 바꾸십시오.

+1

약간 확장하려면'char'는 UTF-8 코드 단위이지만 UTF-8 코드 포인트를 얻으려고합니다. 귀하의 예에서는 하나 이상의 코드 단위가 될 수 있습니다. 'string'은'immutable (char) []'의 별명 일 뿐이므로 CyberShadow가 권장하는대로'string'을 사용하여 저장할 수 있습니다. 또 다른 옵션은'std.utf.encode'이며, 4 문자 길이의 정적 배열 결과 매개 변수를 받아들입니다. – eco

+0

오! D에서''char''를''ubyte []'를 숨기는 "top layout"으로 생각할 때까지 뭔가를 놓쳤습니다. f..k. –

+0

@ user3661500 그런 기본적인 것들에 혼란 스러울 때 D : http://ddili.org/ders/d.en/index.html –