openssl 申请证书 不能正确的存中文。

本人前端兼顾后端。在写一个路由器配置页面申请证书时。证书无法正确显示中文。大多是乱码。但是要求又需要能使用中文。这时候怎么办呢?去修改openssl源码么?那难度也太大了一点吧。

那就只能前后端来解决咯。当然是在后端写入配置文件之前。和读出证书数据之后,返回前端之前。进行一次编码和解码呀。这里用到php的urlencode和urldecode函数。

function encodeUnicode($str)
{
    return  urlToHex(urlencode($str)) ;
}
function urlToHex($str){
    return str_replace("%","\\\x",$str);
}
/**
 * unicode 转码转汉字
 * @param $str
 * @return string|string[]|null
 */
function decodeUnicode($str)
{
    return urldecode(hexToUrl($str));
}
/**
 * 将字符串中的 \x 字符转换为%
 * @param $str
 * @return string|string[]|null
 */
function hexToUrl($str)
{
    return preg_replace_callback('/\\\x/', function ($s) {
        return "%";
    }, $str);
}

这里将中文转换成unicode编码,其实感觉可以直接使用url编码传送。因为既然openssl不能轻易传中文 那就转成英文呗。url编码和unicode编码其实感觉差不多。但没办法。

总结下来就是你不让我存中文那我就翻译一下。读出来的时候再翻译回来。嘿嘿》》》》》》》》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值