HarmonyOS 证书解析后CN怎么获取且是中文

let CNData = x509Cert.getSubjectName().data; 
let CN = this.parseCN(CNData) 
Logger.info('CN=:', CN.toString()); 
 
parseCN = (data:Uint8Array):string=>{ 
  let decodeWithStreamOptions: util.DecodeWithStreamOptions = { 
    stream: false 
  } 
  let textDecoderOptions: util.TextDecoderOptions = { 
    fatal: false, 
    ignoreBOM : true 
  } 
  let textDecoder = util.TextDecoder.create('utf-8', textDecoderOptions); 
  return textDecoder.decodeWithStream(data , decodeWithStreamOptions); 
}

控制台输出CN=:, /C=CN/ST=\xE6\xB5\x99\xE6\xB1\x9F/O=\xE6\xB5\x99\xE6\xB1\x9F\xE7\x9C\x81\xE6\xB1\x87\xE4\xBF\xA1\xE6\xB5\x8B\xE8\xAF\x95\xE7\x94\xA8\xE4\xBC\x81\xE4\xB8\x9A/CN=\xE6\xB5\x99\xE6\xB1\x9F\xE7\x9C\x81\xE6\xB1\x87\xE4\xBF\xA1\xE6\xB5\x8B\xE8\xAF\x95\xE7\x94\xA8\xE4\xBC\x81\xE4\xB8\x9A

怎么取里面的cn值 并且是中文

HarmonyOS
2024-08-13 15:40:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

如下处理可以获得中文,但CN的值,还需要自行分割截取出来

const formatStr = buffer.from(CNData).toString().replace(/\\/g, '\\'); 
const res = decodeURIComponent(formatStr.replace(/\\x/g, '%')) 
console.log('CN=:' + res);
分享
微博
QQ
微信
回复
2024-08-13 21:52:03
相关问题
证书解析解析证书CN怎么获取
401浏览 • 1回复 待解决
HarmonyOS 如何解析证书文件
341浏览 • 1回复 待解决
TextInput怎么输入中文
2872浏览 • 0回复 待解决
HarmonyOS 底部安全距离怎么获取
518浏览 • 1回复 待解决
如何获取Text组件中文字的宽度
2055浏览 • 1回复 待解决
HarmonyOS URLParams不会decode中文
90浏览 • 1回复 待解决