c# combobox集合数据不显示_excel打开数据时显示乱码/问号amp;看起来一样却v不出来怎么办...
1、亂碼問題:
今天正好碰到這種情況,想起來寫一寫。
有時從客戶那里拿到的CSV等文件,直接用excel打開是這樣的:
其實觀察一下會發(fā)現(xiàn)?的地方一般就是中文,實質上是中文字符顯示不出來。有小伙伴一直是單獨下個WPS解決的(wps似乎可以自動識別),但其實excel本身是可以識別的,只是多了一步。
先放解決辦法再講原理:
非常簡單,右鍵文件(一般是csv之類的),使用notepad(記事本)打開:
通常就會發(fā)現(xiàn)可以看到中文了。這時另存為文件,在編碼的地方選擇utf-8:
然后再用excel打開即可。或者再換個別的編碼。
如果還是不行,且你的電腦平時在一些如軟件名稱等地方也會顯示亂碼,可能是因為你電腦的區(qū)域設置有問題。百度一下如何更改系統(tǒng)區(qū)域設置,把english改成china再重啟一下電腦,一般就可以了。
原理其實很簡單,通俗來講我們的語言文字(不管是中文英文還是其他各種語言)都需要以一定的形式轉換告知電腦,然后電腦再進行轉換才能在屏幕上顯示出我們看到的文字,很多人所熟知的ASCII就是最普遍的一種。而像上述顯示亂碼的情況就是從數(shù)據(jù)庫導出數(shù)據(jù)的過程中,中文字符以一種叫UTF-8的編碼儲存了,但excel默認不是以這種編碼形式打開的(似乎是ANSI或Unicode),于是就會發(fā)生無法識別產(chǎn)生亂碼的情況。
所以一般玩游戲或者碼代碼的小伙伴會比較注意,在安裝路徑中盡量不包括中文文件名,有時未知的報錯就是因為程序本身未考慮到這種情況而導致中文路徑無法被程序識別。
另外,由于自帶的notepad雖然會檢測對應的編碼但有時不一定準確,可以試試一個免費的文本軟件notepad++,雖然也不能自動識別,但可以直接在內部選擇不同的編碼查看效果。這個文本軟件功能比較多,包括有些txt導入excel后直接切割效果不好,也可以使用這個來分隔。另外一個更輕量級的是notepad2(雖然我沒用過),也是可以直接改編碼查看的。
總的來說一般數(shù)據(jù)出現(xiàn)亂碼都是編碼有問題,往這個方向嘗試即可。
2、看起來一樣卻v不出來
有時候使用客戶系統(tǒng)導出來的數(shù)據(jù)進行vlookup的時候會有一種問題,就是明明看起來一模一樣,并且使用查找也可以找到,偏偏就是死活v不出來(排除區(qū)域未絕對引用的情況),而且往往你會發(fā)現(xiàn)這種單元格也無法被轉換單元格格式。像這種,行標簽是索引,就是v不出來。
這時候簡單一點的問題可能是,前后有空格(實質可能并不是空格)。于是從單元格中選取空格,使用替換功能替換即可。(如果確實是空格,用trim也可以)
但還有一種更惡心的情況,就是在編輯欄里看來看去都一樣,也沒找到任何空格:
這時候其實跟上述所說的編碼問題也有一些類似,就是這個單元格里有excel完全無法識別且不顯示的字符。這時請使用len()函數(shù)查看單元格字符長度:
你一般會驚訝地發(fā)現(xiàn),明明看起來只有5,但是顯示長度卻是7,也就是有完全不顯示的字符。一般這種字符都是在開頭或者結尾,所以知道了原因,使用mid函數(shù)嘗試去掉頭或者尾就好了。
另外還有一種更粗暴的方式,就是現(xiàn)在excel有快速填充功能:
本質上可以說是各種left mid right trim等等函數(shù)的簡單大集合,也就是你不用再思考使用哪個函數(shù),第幾位開始,第幾位結束,先填一個例子,比如在第一行旁邊手動輸入45104,再點一下,就自動幫你識別好了并且往下填充了。這個搜一搜也有很多講解,就不贅述了。
總之這樣處理之后,你就可以順利地vlookup啦~
總結
以上是生活随笔為你收集整理的c# combobox集合数据不显示_excel打开数据时显示乱码/问号amp;看起来一样却v不出来怎么办...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php中删除文件夹内容吗,如何使用PHP
- 下一篇: ftm模块linux驱动,飞思卡尔k系列