亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 UTF-8 字符串從 Go 調用 Objective-C

使用 UTF-8 字符串從 Go 調用 Objective-C

Go
Qyouu 2022-10-10 18:01:40
我正在嘗試從 Go 調用一個 Objective-C 函數;這很好用,但我的問題出現在 UTF-8 字符串上。我不知道如何NSString*在 Go 代碼中創建一個,或者如何通過char*.package main/*#cgo CFLAGS: -x objective-c#cgo LDFLAGS: -framework Cocoa#import <Cocoa/Cocoa.h>void printUTF8(const char * iconPath) {    NSLog(@"%s", iconPath);}*/import "C"import (    "fmt"    "unsafe")func main() {    goString := "test 漢字 test\n"    fmt.Print(goString)    cString := C.CString(goString)    defer C.free(unsafe.Pointer(cString))    C.printUTF8(cString)}正如預期的那樣,輸出是:測試漢字測試測試 êo¢?≠ó 測試誰能幫我這個?
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

在您的 Objective-C 代碼中,您需要:


void printUTF8(const char * iconPath) {

    // NSLog(@"%s", iconPath);

    NSLog(@"%@", @(iconPath)); // "test 漢字 test"

}

使用裝箱表達式@(iconPath)可確保創建有效的 NSString。例如,如果UTF-8傳遞了錯誤的序列(例如嘗試"Fr\xe9d\xe9ric"),它將安全地渲染到null.


查看完整回答
反對 回復 2022-10-10
  • 1 回答
  • 0 關注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號