728x90
우선 인코딩 문자 내용을 인코딩 사이트에 입력해보았습니다
Character set 에다가 UTF8 Decode 하는 해당 내용이 나오더군요
그래서 해당 내용의 자바스크립트 내용을 참고하였습니다
해당 메인은 아래의 첫번째 사진의 화살표 방향이 메인입니다
그외에 필요한 구조 코드들입니다 이 기준으로 코드를 조금만 수정해서 돌려봅니다
돌려보니 원하시는 문자 결과내용을 가져왔습니다 자 그러면 이기준으로 델파이 언어로 번역하면 되겠죠

자 이렇게 Notepad++에 코드를 자바스크립트 포맷을 해주고 오른쪽 Delphi IDE를 편하게 코드를 짤수 있께 레이아웃
변경해서 짰습니다 코드 완성후 돌려보면 완벽하게 잘 나오는것을 볼수가 있습니다
function CharsetUTF8Decode(TmpStr : string) :string;
begin
var TmpStrm := TStringList.Create;
var I : integer := -1;
while (I < TmpStr.Length) do
begin
inc(I);
var c := Ord(TmpStr.Chars[I]);
if c <= $7F then
TmpStrm.Add(Copy(TmpStr,I+1,1))
else if ($C0 <= c) and (c <= $DF) then
begin
inc(I);
var c2 := Ord(TmpStr.Chars[I]);
if ($80 <= c2) and (c2 <= $BF) then
begin
var o := ((c and $1F) shl 6) + (c2 and $3F);
TmpStrm.Add(Chr(o));
end else begin
Result := 'invalid input';
Exit;
end;
end else if ($E0 <= c) and (c <= $EF) then
begin
inc(I);
var c2 := Ord(TmpStr.Chars[I]);
inc(I);
var c3 := Ord(TmpStr.Chars[I]);
if ($80 <= c2) and (c2 <= $BF) and
($80 <= c3) and (c3 <= $BF) then
begin
var o := ((c and $F) shl 12) + ((c2 and $3F) shl 6) + (c3 and $3F);
TmpStrm.Add(chr(o));
end else begin
Result := 'invalid input';
Exit;
end;
end else if ($E0 <= c) and (c <= $EF) then
begin
inc(I);
var c2 := Ord(TmpStr.Chars[I]);
inc(I);
var c3 := Ord(TmpStr.Chars[I]);
inc(I);
var c4 := Ord(TmpStr.Chars[I]);
if ($80 <= c2) and (c2 <= $BF) and
($80 <= c3) and (c3 <= $BF) and
($80 <= c4)and (c4 <= $BF)then
begin
var o := ((c and 7) shl 18) + ((c2 and $3F) shl 12) + ((c2 and $3F) shl 6) + (c4 and $3F);
TmpStrm.Add(chr(o));
end else begin
Result := 'invalid input';
Exit;
end;
end else begin
Result := 'invalid input';
Exit;
end;
end;
for var I1 : integer := 0 to TmpStrm.Count -1 do
Result := Result + TmpStrm[I1];
TmpStrm.Free;
end;
728x90
'Delphi 예제 자료' 카테고리의 다른 글
델파이 ID3v2Library에서 타이틀 및 앨범 한글 글씨 깨짐 방지 (0) | 2022.01.18 |
---|---|
Refletive Injection DLL쪽 C 언어 소스를 델파이 번역 (소소한 강의) (0) | 2022.01.05 |
C의 구조체와 공용체를 델파이로 간단 설명. (2) | 2021.12.18 |
체크박스 컴포넌트만 찾아서 전부 체크 및 해제 예제. (0) | 2021.12.13 |
[windows,android] 델파이 BASS 라이브러리 통한 간단한 오디오 커팅한 구간 파일 생성하기 (0) | 2021.12.13 |
토크온 리방 용도 부모와 자식(FindWindow 와 FindWindowEx) 참고용 소스 (0) | 2021.12.13 |
asm(어셈블리어) ntdll.dll Base값과 Kernel32.dll Base값 쉽게 구하기. (0) | 2021.12.13 |
델파이(delphi) Refletive Dll Injection + Loader (0) | 2021.12.13 |
댓글