내가 문자를 교체하려고 (진수 값 197)를 사용하여 UTF-8 파일에서 유니 코드 문자를 교체 (진수 값 65) 그것은 문자열문자와 UTF-8 파일에서 델파이 2010
SS := TStringStream.Create(ParamStr1, TEncoding.UTF8);
SS.LoadFromFile(ParamStr1);
//S:= SS.DataString;
//ShowMessage(S);
그러나, 내가 어떻게 65 모든 197 년대를 교체하는 (즉, 비록 할 필요가 없습니다 수 있습니다), 그리고 UTF-8로 다시 밖으로 저장?
SS.SaveToFile(ParamStr2);
SS.Free;
는 -------------- EDIT ----------------
reader:= TStreamReader.Create(ParamStr1, TEncoding.UTF8);
writer:= TStreamWriter.Create(ParamStr2, False, TEncoding.UTF8);
while not Reader.EndOfStream do
begin
S:= reader.ReadLine;
for I:= 1 to Length(S) do
begin
if Ord(S[I]) = 350 then
begin
Delete(S,I,1);
Insert('A',S,I);
end;
end;
writer.Write(S + #13#10);
end;
writer.Free;
reader.Free;
UTF-8은 1 개 바이트 길이 그래서 진수 값 (300)은 불가능하다가 대리가 아닌 : 사실 인 경우 디코딩 된 UTF-8 데이터 후
StringReplace()
를 호출 할 때, 단순히Ş
으로Å
대체 이 경우 문자를 나타내는 코드 포인트 또는 개별 바이트에 대해 이야기하는 것이 좋습니다. 어쨌든, 당신의 목표는 당신의 [다른 질문]과 관련이 있기 때문입니다. (http://stackoverflow.com/questions/13864643/reading-a-text-file-as-bytes-byte-by-byte -using-delphi-2010) – jachguate아무 것도 이해가되지 않습니다. 이 질문이나 다른 질문. 당신은 [XY 질문] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)으로 알려진 것을 묻습니다. 나는 당신에게 우리에게 뒷 이야기를 할 것을 강력히 권합니다. 근원적 인 문제를 말해주십시오. 해결책을 제안하겠습니다. 제안하는 솔루션이 약해진다. –
평범한 오래된 'StringReplace'의 문제점은 무엇입니까? –