다른 인코딩 (ASCII, UTF-8, UTF-16, UTF-32)이 가능한 텍스트 파일이 있습니다. 가장 좋은 부분은 예를 들어, 숫자 만 가득이다 :유니 코드를 ascii로 변환
192848292732
내 질문은 다음과 같은 기능이 제대로 모든 데이터를 표시 할 수 우는 것인가? 이유가 없다면? (필자는 컨테이너 문자열로 문자열로 파일을로드 한)
function output(container: AnsiString): AnsiString;
var
i: Integer;
begin
Result := '';
for i := 1 to Length(container) do
if (Ord(container[i]) <> 0) then
Result := Result + container[i];
end;
내 논리는 인코딩이 다음 ASCII와 UTF-8 추가 문자가 다른 경우 모두 0 점이다?
모든 테스트를 통과합니다.
문자열이란 무엇입니까? AnsiString 또는 UnicodeString? 어떻게하면 델파이 버전을 지정하지 않고도 유니 코드 질문을 할 수 있습니까?! BOM을 어떻게 처리 할 것을 제안합니까? –
@DavidHeffernan 나는 델파이 7을 사용합니다. String은 AnsiString 마녀가 파일에서로드 된 바이트를 포함하고 0은 바이트 0을 나타냅니다. 바이트 0은 위조라고 가정하고 깨끗한 아스키 문자열을 제거합니다. 이게 옳은 거니 ? – opc0de
@SertacAkyuz 예 질문에 따라 질문을 편집하겠습니다. – opc0de