最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

問題

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

經(jīng)過查詢多方資料和測試,發(fā)現(xiàn)反斜杠是屬于轉(zhuǎn)義字符,我查看數(shù)據(jù)庫和返回給前端的數(shù)據(jù),里面的數(shù)據(jù)都是有兩個反斜杠的,但是前端顯示出來就只有一個,這個是屬于正常的,因為是字符串,兩個反斜杠,其中一個被認(rèn)為是轉(zhuǎn)義字符,另一個被認(rè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ù)然后打印出來,他也是單反斜杠,因為打印的時候他認(rèn)為兩個單反斜杠其中一個是轉(zhuǎn)義字符,但是數(shù)據(jù)庫里面本質(zhì)是存的兩個反斜杠,你把數(shù)據(jù)取出來寫到文件里面看,就是兩個單反斜杠。

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

2、解決辦法

當(dāng)時我想到的解決辦法有兩種,一種就是讓前端直接顯示全部的字符串,即顯示兩個反斜杠的字符串,然后用戶到時候直接復(fù)制來進(jìn)行模糊查詢即可,前端的處理方法我目前不知道咋個實現(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,原來的字符串?dāng)?shù)一下是13,為什么多個4呢,因為轉(zhuǎn)換后兩個單反斜杠變成了雙反斜杠,增加了2,然后前后多了一個引號,增加了2,一共就是增加了4。然后再使用strjelly[1 : num-1]去掉前后的兩個引號即可。

3、總結(jié)

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

相關(guān)文章

  • go-zero源碼閱讀之布隆過濾器實現(xiàn)代碼

    go-zero源碼閱讀之布隆過濾器實現(xiàn)代碼

    布隆過濾器可以用于檢索一個元素是否在一個集合中。它的優(yōu)點是空間效率和查詢時間都比一般的算法要好的多,缺點是有一定的誤識別率和刪除困難,這篇文章主要介紹了go-zero源碼閱讀-布隆過濾器,需要的朋友可以參考下
    2023-02-02
  • GO語言中的方法值和方法表達(dá)式的使用方法詳解

    GO語言中的方法值和方法表達(dá)式的使用方法詳解

    這篇文章主要介紹了GO的方法值和方法表達(dá)式的使用方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 詳解Go中Map類型和Slice類型的傳遞

    詳解Go中Map類型和Slice類型的傳遞

    這篇文章主要為大家詳細(xì)介紹了Go中Map類型和Slice類型的傳遞,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • golang生成RSA公鑰和密鑰的實現(xiàn)方法

    golang生成RSA公鑰和密鑰的實現(xiàn)方法

    本文主要介紹了golang生成RSA公鑰和密鑰的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • Systemd集成Golang二進(jìn)制程序的方法

    Systemd集成Golang二進(jìn)制程序的方法

    這篇文章主要介紹了Systemd集成Golang二進(jìn)制程序的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-10-10
  • 一文詳解Go語言io.LimitedReader類型

    一文詳解Go語言io.LimitedReader類型

    這篇文章主要為大家介紹了Go語言io.LimitedReader類型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Go并發(fā)同步Mutex典型易錯使用場景

    Go并發(fā)同步Mutex典型易錯使用場景

    這篇文章主要為大家介紹了Go并發(fā)同步Mutex典型易錯使用場景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Goland 斷點調(diào)試Debug的操作

    Goland 斷點調(diào)試Debug的操作

    這篇文章主要介紹了Goland 斷點調(diào)試Debug的操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • go語言計算兩個時間的時間差方法

    go語言計算兩個時間的時間差方法

    這篇文章主要介紹了go語言計算兩個時間的時間差方法,涉及Python操作時間的技巧,需要的朋友可以參考下
    2015-03-03
  • Golang Map value不可尋址使用指針類型代替示例詳解

    Golang Map value不可尋址使用指針類型代替示例詳解

    這篇文章主要為大家介紹了Golang Map value不可尋址使用指針類型代替示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11

最新評論

横山县| 肇源县| 奉化市| 江阴市| 科技| 焦作市| 彰化市| 喀什市| 尉犁县| 古交市| 桑日县| 昌宁县| 哈尔滨市| 郯城县| 扬州市| 宣威市| 新化县| 徐闻县| 济阳县| 龙州县| 武安市| 武城县| 增城市| 张家港市| 山阴县| 平湖市| 定兴县| 扎赉特旗| 鹤山市| 汕头市| 商水县| 山阴县| 边坝县| 扎兰屯市| 海淀区| 津南区| 始兴县| 黄浦区| 天门市| 安溪县| 平江县|