ostream 儲存資料出現亂碼原因之一

2021-07-05 00:16:13 字數 879 閱讀 5647

程式跑完之後,往往需要將結果儲存為txt格式,有的時候儲存完成後,會出現亂碼問題。一般能想到的原因就是txt編輯器編碼不合適的問題,除此之外還有一種常常被忽略的原因是我們儲存時資料處理不正確。字元型資料按照但位元組資料進行儲存時,如果字元型資料儲存的是不能被正常顯示的ascii值,讀該檔案時便會出現亂碼現象。下面是資料處理不正確導致亂碼的例子。要解決這個問題,只要將字元型資料強制轉換為整型資料即可。

例子**如下:

下面實在vim中顯示的情況。

上面的**中,有兩個ascii碼值:1和48;

在**的第8行由於ch0是字元型別的資料,所以儲存到文字檔案時直接儲存其ascii值48,顯示的時候為0。

在第9行ch0被強制轉換為整型,儲存時會按照十進位制數48進行進行儲存,所以下次讀出是會顯示48,這個與原資料相同。

在第10行ch被轉換為整型進行儲存,編碼時會按照轉換後的數字49進行儲存,所以讀出時數值顯示仍為1。

在第11行中ch按照uchar型別儲存,儲存的便是其ascii碼值1,在讀的時候仍得到ascii 1,此時會出現亂碼現象,因為ascii 1是不能顯示的。

PHP MySQL儲存資料出現中文亂碼的問題

php mysql出現中文亂碼的原因 1.mysql資料庫的編碼是utf8,與php網頁的編碼格式不一致,就會造成mysql中的中文亂碼。2.使用mysql中建立表 或者選擇欄位時設定的型別不是utf8,而網頁編碼不是utf8,也可能造成mysql中文亂碼.3.php頁面的字符集與資料庫的編碼不一致...

ue出現亂碼,UltraEdit出現亂碼

ue出現亂碼,ultraedit出現亂碼 advanced configuration.file handling unicode utf 8 detection auto detect utf 8 files 前面的核取方塊選中,選擇 應用 按鈕,然後再選擇 確定 按鈕 我做了很多測試在windo...

PL SQL出現儲存過程注釋中文亂碼

進入pl sql命令列視窗輸入 select userenv language from dual 查出資料庫字符集 輸入 select from v nls parameters 查出nls language位本地字符集。在系統環境變數中增加乙個變數nls lang,值設定位select user...