diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler/InputHandler_HandleComposition.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler/InputHandler_HandleComposition.swift index c1a24f34..9c7891ad 100644 --- a/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler/InputHandler_HandleComposition.swift +++ b/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler/InputHandler_HandleComposition.swift @@ -422,16 +422,9 @@ private extension InputHandler { delegate.switchState(updatedState) return true } - let encoding: CFStringEncodings? = { - switch IMEApp.currentInputMode { - case .imeModeCHS: return .GB_18030_2000 - case .imeModeCHT: return .big5_HKSCS_1999 - default: return nil - } - }() guard var char = "\(strCodePointBuffer)\(input.text)" - .parsedAsHexLiteral(encoding: encoding)?.first?.description + .parsedAsHexLiteral(encoding: IMEApp.currentInputMode.nonUTFEncoding)?.first?.description else { delegate.callError("D220B880:輸入的字碼沒有對應的字元。") var updatedState = IMEState.ofAbortion() diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler/InputHandler_TypingMethod.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler/InputHandler_TypingMethod.swift index 2b54b687..bf0d97c5 100644 --- a/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler/InputHandler_TypingMethod.swift +++ b/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler/InputHandler_TypingMethod.swift @@ -30,12 +30,8 @@ public extension InputHandler { case .codePoint: let commonTerm = NSMutableString() commonTerm.insert("Code Point Input.".localized, at: 0) - if !vertical { - switch IMEApp.currentInputMode { - case .imeModeCHS: commonTerm.insert("[GB] ", at: 0) - case .imeModeCHT: commonTerm.insert("[Big5] ", at: 0) - default: break - } + if !vertical, let initials = IMEApp.currentInputMode.nonUTFEncodingInitials { + commonTerm.insert("[\(initials)] ", at: 0) } return commonTerm.description case .haninKeyboardSymbol: diff --git a/Packages/vChewing_Shared/Sources/Shared/Shared.swift b/Packages/vChewing_Shared/Sources/Shared/Shared.swift index 6a107448..b5ac64d4 100644 --- a/Packages/vChewing_Shared/Sources/Shared/Shared.swift +++ b/Packages/vChewing_Shared/Sources/Shared/Shared.swift @@ -252,6 +252,22 @@ public enum Shared { return "Please select…" } } + + public var nonUTFEncoding: CFStringEncodings? { + switch self { + case .imeModeCHS: return .GB_18030_2000 + case .imeModeCHT: return .big5_HKSCS_1999 + default: return nil + } + } + + public var nonUTFEncodingInitials: String? { + switch self { + case .imeModeCHS: return "GB" + case .imeModeCHT: return "Big5" + default: return nil + } + } } }