欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用go語言將單反斜杠改為雙反斜杠的方法

 更新時間:2024年01月28日 10:46:40   作者:Jelly-小丑魚  
最近開發(fā)的時候遇到這么個問題,就是在window上獲取了文件目錄的字段,然后將這個絕對路徑保存到數(shù)據(jù)庫,但是前端展示的時候路徑的雙反斜杠變成了單反斜杠,本文給大家介紹了使用go語言將單反斜杠改為雙反斜杠的方法,需要的朋友可以參考下

問題

最近開發(fā)的時候遇到這么個問題,就是在window上獲取了文件目錄的字段,然后將這個絕對路徑保存到數(shù)據(jù)庫,最后前端需要請求的時候,就需要讀取數(shù)據(jù)庫存的文件目錄路徑給前端,前端要進行展示。但是前端展示的時候路徑的雙反斜杠變成了單反斜杠,然后問題來了,對于這個路徑我們有模糊查詢的功能,導(dǎo)致含有單反斜杠的模糊查詢無法正常查詢。

經(jīng)過查詢多方資料和測試,發(fā)現(xiàn)反斜杠是屬于轉(zhuǎn)義字符,我查看數(shù)據(jù)庫和返回給前端的數(shù)據(jù),里面的數(shù)據(jù)都是有兩個反斜杠的,但是前端顯示出來就只有一個,這個是屬于正常的,因為是字符串,兩個反斜杠,其中一個被認為是轉(zhuǎn)義字符,另一個被認為是字符串,所以只顯示一個反斜杠,但是關(guān)鍵字查詢的時候,用戶肯定是直接復(fù)制顯示的單個反斜杠的字符串,所以就導(dǎo)致了查詢不出來。

具體的現(xiàn)象如下所示:

1、現(xiàn)象描述

前面已經(jīng)簡單說了情況,我數(shù)據(jù)庫里面存的是這樣子的:

C:\\Program Files\\WPS Office\\12.1.0.16250\\wtoolex\\wpsupdate.exe

但是你如果取出數(shù)據(jù)然后打印出來,他也是單反斜杠,因為打印的時候他認為兩個單反斜杠其中一個是轉(zhuǎn)義字符,但是數(shù)據(jù)庫里面本質(zhì)是存的兩個反斜杠,你把數(shù)據(jù)取出來寫到文件里面看,就是兩個單反斜杠。

然后我發(fā)給前端,前端收到的也是雙反斜杠的,但是就顯示的就是單斜杠,所以查詢的時候考妣網(wǎng)頁顯示單反斜杠的路徑去模糊查詢是查詢不到的。

2、解決辦法

當時我想到的解決辦法有兩種,一種就是讓前端直接顯示全部的字符串,即顯示兩個反斜杠的字符串,然后用戶到時候直接復(fù)制來進行模糊查詢即可,前端的處理方法我目前不知道咋個實現(xiàn),應(yīng)該還是可以實現(xiàn)的,我做后端的,這里講下我后端怎么實現(xiàn)的:

后端的實現(xiàn)方法就是將原來的單反斜杠給他變成雙反斜杠,我之前找了很久,一直沒找到實現(xiàn)的方法,最后無意中找到了,使用fmt.Sprintf就可以實現(xiàn)。具體實現(xiàn)代碼如下所示

strjelly := `C:\jelly\path`
strjelly = fmt.Sprintf("%#v", strjelly)
num := len(strjelly)
fmt.Println(num)
fmt.Println(strjelly)
fmt.Println(strjelly[1 : num-1])

代碼中,假設(shè)你的字符串變量是strjelly,字符串里面含有兩個單反斜杠,然后經(jīng)過fmt.Sprintf("%#v", strjelly)處理后,里面的單反斜杠就會變成雙反斜杠,但是這樣轉(zhuǎn)換后不能直接用,因為這樣轉(zhuǎn)換后,他會前后多字符串引號,需要使用strjelly[1 : num-1])把前后的兩個引號字符給去掉,具體的打印如下所示:

17
"C:\\jelly\\path"
C:\\jelly\\path

可以看到,經(jīng)過fmt.Sprintf處理后,字符串的長度多了4,原來的字符串數(shù)一下是13,為什么多個4呢,因為轉(zhuǎn)換后兩個單反斜杠變成了雙反斜杠,增加了2,然后前后多了一個引號,增加了2,一共就是增加了4。然后再使用strjelly[1 : num-1]去掉前后的兩個引號即可。

3、總結(jié)

以上就是記錄的單反斜杠轉(zhuǎn)雙反斜杠的記錄,本方法是針對go語言的,可能場景比較特殊,不是非常適用,也記錄下來,方便后續(xù)查詢。其實最開始的時候,比較困惑,因為打印出來就是單反斜杠,然后讀出來用文件保存下來又是雙反斜杠,還是折騰的比較久。最后經(jīng)過查詢,猜測,驗證,終于明白了其中的關(guān)鍵,其實當時使用打印字符串的長度估計也能知道其中的蹊蹺所在。

相關(guān)文章

  • Go引用github包的詳細流程步驟

    Go引用github包的詳細流程步驟

    這篇文章主要給大家介紹了關(guān)于Go引用github包的詳細流程步驟,文中通過圖文介紹的非常詳細,對大家學(xué)習或者使用Go具有一定的參考價值,需要的朋友可以參考下
    2024-02-02
  • Golang使用pprof檢查內(nèi)存泄漏的全過程

    Golang使用pprof檢查內(nèi)存泄漏的全過程

    pprof 是golang提供的一款分析工具,可以分析CPU,內(nèi)存的使用情況,本篇文章關(guān)注它在分析內(nèi)存泄漏方面的應(yīng)用,本文給大家介紹了Golang使用pprof檢查內(nèi)存泄漏的全過程,文中通過代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • GoLang channel底層代碼實現(xiàn)詳解

    GoLang channel底層代碼實現(xiàn)詳解

    Channel和goroutine的結(jié)合是Go并發(fā)編程的大殺器。而Channel的實際應(yīng)用也經(jīng)常讓人眼前一亮,通過與select,cancel,timer等結(jié)合,它能實現(xiàn)各種各樣的功能。接下來,我們就要梳理一下GoLang channel底層代碼實現(xiàn)
    2022-10-10
  • Go 修改map slice array元素值操作

    Go 修改map slice array元素值操作

    這篇文章主要介紹了Go 修改map slice array元素值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • golang中snappy的使用場合實例詳解

    golang中snappy的使用場合實例詳解

    在java 和go語言 大字符傳達的時候, 采用snappy 壓縮 解壓縮是最好的方案。下面這篇文章主要給大家介紹了關(guān)于golang中snappy使用場合的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-12-12
  • Golang 語言極簡類型轉(zhuǎn)換庫cast的使用詳解

    Golang 語言極簡類型轉(zhuǎn)換庫cast的使用詳解

    本文我們通過 cast.ToString() 函數(shù)的使用,簡單介紹了cast 的使用方法,除此之外,它還支持很多其他類型,在這沒有多多介紹,對Golang 類型轉(zhuǎn)換庫 cast相關(guān)知識感興趣的朋友一起看看吧
    2021-11-11
  • Golang中的Unicode與字符串示例詳解

    Golang中的Unicode與字符串示例詳解

    這篇文章主要給大家介紹了關(guān)于Golang中Unicode與字符串的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習或者使用Golang具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧
    2020-05-05
  • Golang常見錯誤之值拷貝和for循環(huán)中的單一變量詳解

    Golang常見錯誤之值拷貝和for循環(huán)中的單一變量詳解

    這篇文章主要給大家介紹了關(guān)于Golang常見錯誤之值拷貝和for循環(huán)中單一變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧。
    2017-11-11
  • go 壓縮解壓zip文件源碼示例

    go 壓縮解壓zip文件源碼示例

    這篇文章主要為大家介紹了go壓縮及解壓zip文件的源碼示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Golang?單元測試和基準測試實例詳解

    Golang?單元測試和基準測試實例詳解

    這篇文章主要為大家介紹了Golang?單元測試和基準測試實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08

最新評論