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

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

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

問(wèn)題

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

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

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

1、現(xiàn)象描述

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

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

但是你如果取出數(shù)據(jù)然后打印出來(lái),他也是單反斜杠,因?yàn)榇蛴〉臅r(shí)候他認(rèn)為兩個(gè)單反斜杠其中一個(gè)是轉(zhuǎn)義字符,但是數(shù)據(jù)庫(kù)里面本質(zhì)是存的兩個(gè)反斜杠,你把數(shù)據(jù)取出來(lái)寫(xiě)到文件里面看,就是兩個(gè)單反斜杠。

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

2、解決辦法

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

后端的實(shí)現(xiàn)方法就是將原來(lái)的單反斜杠給他變成雙反斜杠,我之前找了很久,一直沒(méi)找到實(shí)現(xiàn)的方法,最后無(wú)意中找到了,使用fmt.Sprintf就可以實(shí)現(xiàn)。具體實(shí)現(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,字符串里面含有兩個(gè)單反斜杠,然后經(jīng)過(guò)fmt.Sprintf("%#v", strjelly)處理后,里面的單反斜杠就會(huì)變成雙反斜杠,但是這樣轉(zhuǎn)換后不能直接用,因?yàn)檫@樣轉(zhuǎn)換后,他會(huì)前后多字符串引號(hào),需要使用strjelly[1 : num-1])把前后的兩個(gè)引號(hào)字符給去掉,具體的打印如下所示:

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

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

3、總結(jié)

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

相關(guān)文章

  • Go引用github包的詳細(xì)流程步驟

    Go引用github包的詳細(xì)流程步驟

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

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

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

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

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

    Go 修改map slice array元素值操作

    這篇文章主要介紹了Go 修改map slice array元素值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • golang中snappy的使用場(chǎng)合實(shí)例詳解

    golang中snappy的使用場(chǎng)合實(shí)例詳解

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

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

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

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

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

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

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

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

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

    Golang?單元測(cè)試和基準(zhǔn)測(cè)試實(shí)例詳解

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

最新評(píng)論