程式里有一個memo在loadfromfile時,load的是一個txt檔案,之前的好多的txt都能被memo讀取。但是有一個txt,memo在loadfromfile時,發現,load后,memo里的字符是‘’,即空的,沒load成功。在這里我講一下,這個txt是一個檢驗機器(檢驗血的)的原始資料,然后拷到我電腦里的。不知道哪里出的問題,給人的感覺是這個txt的原始資料有問題,但是之前拷過好多檢驗機器的原始資料,都是txt的,memo都能通過loadfromfile方法完整的獲取里面的字符。這個文本檔案的原始資料也沒看到有什么奇異的地方。
然后我又通過
assignfile(f,srfile);
reset(f);
while not eof(f) do
begin
readln(f,s_read);
s_wcl:=s_wcl+s_read;
end;
這幾條陳述句試著讀取,竟然讀到了。
srfile就是那個txt的目錄。之后把讀到的字符都賦給了s_wcl;
但是之后又有一個奇怪的問題出現了。
這個txt里面是有字符“?”的,即問號,但是,當我通過方法pos("?",s_wcl)時,發現pos值為0,即沒發現里面有這個字符的。但是,這個txt里,的確是有這個字符的,即問號是有的。
麻煩哪位大神幫小弟解決下
uj5u.com熱心網友回復:
自己先頂下了uj5u.com熱心網友回復:
估計是編碼(utf、unicode)的問題uj5u.com熱心網友回復:
其它的字符都能通過pos方法讀到uj5u.com熱心網友回復:
txt里面是有字符“?”,估計只是亂碼,而不是真正的問號uj5u.com熱心網友回復:
編碼問題,用MadEdit打開好好看看。uj5u.com熱心網友回復:
你確定那是真的“?”?uj5u.com熱心網友回復:
對,是真的“?”,因為我把它ctrl+c到了一個將字符轉換為ascii碼的程式里,轉換后顯示其ascii碼是63,正好是問號的ascii碼。uj5u.com熱心網友回復:
使用16進制方式查看內容,就最清楚了
復制也不一定準確保留原來的位元組值
uj5u.com熱心網友回復:
那用什么軟體查看uj5u.com熱心網友回復:
UltraEdituj5u.com熱心網友回復:
編碼問題在txt中看到是?,復制出來也是? 其實在txt中保存的值并不一定是?的值
比如拷貝一個繁體字到delphi里面,看到的有可能就是?
uj5u.com熱心網友回復:
那我問問一下上樓,為什么我將拷出來的“?”,放到將字符轉換為ascii碼的軟體里,轉換后,這個字符的ascii碼顯示的就是63,這正好是問號的ascii碼。uj5u.com熱心網友回復:
強大一點的編輯器,如ultraedit 或 強大一點的系統工具,如total commander
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/157111.html
標籤:語言基礎/算法/系統設計
