成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

用Python轉(zhuǎn)換一些常見全角字符為半角

godlong_X / 987人閱讀

摘要:前言最近在爬日文小說的過程中,經(jīng)常遇到全角甚至和和半角混用,造成我強(qiáng)迫癥強(qiáng)烈不適,就著手專門寫一個(gè)腳本處理之思路首先在網(wǎng)上尋找看是否已經(jīng)有現(xiàn)成庫(kù)腳本能做到,尋找一番之后只找到一些思路文章,這里就不重復(fù)了有一點(diǎn)要注意,不少文章里是的情況,里面

前言

最近在爬日文小說的過程中,經(jīng)常遇到全角(甚至和和半角混用),造成我(強(qiáng)迫癥)強(qiáng)烈不適,就著手專門寫一個(gè)腳本處理之

思路

首先在網(wǎng)上尋找看是否已經(jīng)有現(xiàn)成庫(kù)/腳本能做到,尋找一番之后只找到一些思路文章,這里就不重復(fù)了
有一點(diǎn)要注意,不少文章里是python2的情況,里面用的是unichr函數(shù),到python3就變成了chr函數(shù)
直接看代碼吧

def SBC2DBC(char):
    chr_code = ord(char)
    # 處理全角中數(shù)字大等于10的情況
    if chr_code in range(9312, 9332):
        return str(chr_code - 9311)
    elif chr_code in range(9332, 9352):
        return str(chr_code - 9331)
    elif chr_code in range(9352, 9372):
        return str(chr_code - 9351)
    elif chr_code in range(8544, 8556):
        return str(chr_code - 8543)

    else:
        if chr_code == 12288: # 全角空格,同0x3000
            chr_code = 32
        if chr_code == 8216 or chr_code == 8217:  # ‘’
            chr_code = 39 # "
        elif chr_code in range(65281, 65374):
            chr_code = chr_code - 65248
        return chr(chr_code)


def SBC2DBC_string(string):
    new_string = ""
    for char in string:
        new_string += SBC2DBC(char)
    return new_string

網(wǎng)上大部分文章里只有全角空格和range(65281,65374)的情況,我時(shí)不時(shí)能遇到一些比較奇怪的全角數(shù)字,比如⑩ ⑽ ⒑ Ⅻ,這里也一并處理了

擴(kuò)展思考

1 . 某些情況下全角反而是更好的選擇,比如文件名,其不能用*:/等符號(hào),全角就更適合,當(dāng)然這屬于另一個(gè)話題,就不在此展開
2 . 羅馬數(shù)字的情況,在現(xiàn)有的全角字符中羅馬數(shù)字僅到12,如果某位(喪心病狂的)作者用了多個(gè)羅馬數(shù)字的話,比如ⅩⅤ,上面的腳本就不合適了(就轉(zhuǎn)成105),這時(shí)候需要先對(duì)整個(gè)字符串進(jìn)行處理,找到連接在一起的羅馬數(shù)字,然后計(jì)算并替換,這更像是數(shù)據(jù)清洗的范疇,也不展開多說了

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44515.html

相關(guān)文章

  • 使Python轉(zhuǎn)換全角字符半角

    摘要:而在使用英文輸入法時(shí)我們將個(gè)英文字符所占的位置稱為半角。需要注意的是只有在支持漢字等語(yǔ)言的計(jì)算及上才存在全角和半角的概念。由于在規(guī)定中半角字符是從開始到結(jié)束。當(dāng)然除了以上的方式外還有其他的方式將全角轉(zhuǎn)換為半角。 原文地址: http://52sox.com/use-python-t... 關(guān)于全角轉(zhuǎn)換為半角的問題,其實(shí)源自在公司的運(yùn)營(yíng)人員在輸入法切換的時(shí)候選擇了全角,結(jié)果導(dǎo)致程序有時(shí)候...

    smallStone 評(píng)論0 收藏0
  • java字符全角半角轉(zhuǎn)換

    摘要:序本文展示一下如何將進(jìn)行半角與全角轉(zhuǎn)換。術(shù)語(yǔ)全角進(jìn)制轉(zhuǎn)為進(jìn)制半角進(jìn)制轉(zhuǎn)為進(jìn)制工具類全角空格半角空格全角半角轉(zhuǎn)換間隔驗(yàn)證輸出工具類全角半角字符相互轉(zhuǎn)換 序 本文展示一下如何將char進(jìn)行半角與全角轉(zhuǎn)換。 術(shù)語(yǔ) 全角 SBC case Sexagesimal to Binary Converter 60進(jìn)制轉(zhuǎn)為2進(jìn)制 半角 DBC case Decimal to Binary Con...

    CollinPeng 評(píng)論0 收藏0
  • python IDLE的簡(jiǎn)明圖示使說明(適合初學(xué)者)

    摘要:的簡(jiǎn)明圖示使用說明是自帶的開發(fā)工具,參見下圖在的提示符后輸入代碼,回車,就可以執(zhí)行此代碼,參見下圖下面演示用的編輯器編寫程序文件并運(yùn)行程序文件將以為擴(kuò)展名。輸出在屏幕上顯示數(shù)據(jù),將數(shù)據(jù)保存至文件等。 python IDLE的簡(jiǎn)明圖示使用說明 IDLE 是python自帶的開發(fā)工具,參見下圖...

    caiyongji 評(píng)論0 收藏0
  • JS基礎(chǔ)篇-- JS對(duì)全角半角的驗(yàn)證,相互轉(zhuǎn)化以及介紹

    摘要:全角占兩個(gè)字節(jié)。漢字字符和規(guī)定了全角的英文字符及國(guó)標(biāo)中的圖形符號(hào)和特殊字符都是全角字符。在全角中,字母和數(shù)字等與漢字一樣占據(jù)著等寬的位置。全角轉(zhuǎn)換為半角 1.什么是全角和半角? 全角:是一種電腦字符,是指一個(gè)全角字符占用兩個(gè)標(biāo)準(zhǔn)字符(或兩個(gè)半角字符)的位置。全角占兩個(gè)字節(jié)。 漢字字符和規(guī)定了全角的英文字符及國(guó)標(biāo)GB2312-80中的圖形符號(hào)和特殊字符都是全角字符。在全角中,字母和數(shù)字等...

    YancyYe 評(píng)論0 收藏0
  • Python編碼問題及中文解決方案

    摘要:中國(guó)人民看到這樣很不錯(cuò),于是就把這種漢字方案叫做。結(jié)果擴(kuò)展之后的編碼方案被稱為標(biāo)準(zhǔn),包括了的所有內(nèi)容,同時(shí)又增加了近個(gè)新的漢字包括繁體字和符號(hào)。 聲明:文章借鑒自【徹底搞懂 python 中文亂碼問題】 一. 各種編碼的由來 1.1 ASCII編碼 很久很久以前,有一群人,他們決定用8個(gè)可以開合的晶體管來組合成不同的狀態(tài),以表示世界上的萬(wàn)物。他們看到8個(gè)開關(guān)狀態(tài)是好的,于是他們把這稱為...

    kevin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<