技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 12861
|
本帖最后由 t小寶 于 2010-12-24 09:20 編輯
各位看到標(biāo)題不要想到中日之間的什么事哦,其實(shí)只是,日文片假名字符在ACCESS中一出現(xiàn),就會(huì)惹來不少麻煩,
諸如表的記錄含有日文片假名字符時(shí),查詢記錄會(huì)導(dǎo)致內(nèi)存溢出,處理字符串的函數(shù)遇到日文片假名字符會(huì)出錯(cuò)等,
具體可用ACCESS和日文為關(guān)鍵字百度一下。
其實(shí)這也不能怪日本,怪就怪微軟,真不知微軟是什么心態(tài),搞這么一個(gè)BUG,影響中日關(guān)系。。。
那么,在ACCESS中就要堅(jiān)決清除日文片假名字符,不能讓它與ACCESS共存,
但用Replace、InStr來處理都出錯(cuò),所以只能用暴力一個(gè)字一個(gè)字來解決了。
在http://ctxi.cn/thread-95783-1-1.html此帖中fyupeng 版友遇到了此問題,并找到了解決方法,
本人也寫了個(gè)函數(shù),誰有更好的辦法快來指正。。。
'清除日文片假名字符函數(shù)
Function ClearKatakana(Expression As String) As String
Dim i As Long
Dim lngStart As Long
Dim lngLength As Long
lngStart = 1
For i = 1 To Len(Expression)
Select Case Mid(Expression, i, 1)
Case "ゴ", "ガ", "ギ", "ア", "ゲ", "ザ", "ジ", "ズ", "ヅ", "デ", "ド", "ポ", "ベ", "プ", "ビ", "パ", "ヴ", "ボ", "ペ", "ブ", "ピ", "バ", "ヂ", "ダ", "ゾ", "ゼ"
lngLength = i - lngStart
If lngLength > 0 Then ClearKatakana = ClearKatakana & Mid(Expression, lngStart, lngLength)
lngStart = i + 1
End Select
Next
ClearKatakana = ClearKatakana & Mid(Expression, lngStart)
End Function
|
|