PHP:JSON字符串转换为中文,中文转换为JSON字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | /** * 中文转换为JSON字符串 * @param $chinese_str 中文:可以包含中文字母数字 * @return string */ function json_encode( $chinese_str ) { $chinese_str = iconv( 'UTF-8' , 'UCS-2' , $chinese_str ); $len = strlen ( $chinese_str ) - 1; $str = '' ; for ( $i = 0; $i < $len ; $i = $i + 2) { $c1 = $chinese_str [ $i ]; $c2 = $chinese_str [ $i + 1]; $unicode1 =ord( $c1 ); $unicode2 =ord( $c2 ); if ( $unicode1 ) { // 两个字节的文字 $unicode1 = '\u' . base_convert ( $unicode1 , 10, 16); $unicode2 = base_convert ( $unicode2 , 10, 16); if (in_array( $unicode2 , array ( 'a' , 'b' , 'c' , 'd' , 'e' , 'f' ))){ $unicode2 = '0' . $unicode2 ; } $str .= $unicode1 . $unicode2 ; } else { $str .= $c2 ; } } return $str ; } /** * JSON字符串转换为中文 * @param $json_str JSON字符串 * @return string */ function json_decode( $json_str ) { // 转换编码,将JSON字符串转换成可以浏览的utf-8编码 $pattern = '/([\w]+)|(\\\u([\w]{4}))/i' ; preg_match_all( $pattern , $json_str , $matches ); $chinese_str = '' ; if (! empty ( $matches )) { $count = count ( $matches [0]); for ( $j = 0; $j < $count ; $j ++) { $str = $matches [0][ $j ]; if ( strpos ( $str , '\\u' ) === 0) { $code = base_convert ( substr ( $str , 2, 2), 16, 10); $code2 = base_convert ( substr ( $str , 4), 16, 10); $c = chr ( $code ). chr ( $code2 ); $c = iconv( 'UCS-2' , 'UTF-8' , $c ); $chinese_str .= $c ; } else { $chinese_str .= $str ; } } } return $chinese_str ; } |
突然十年便过去,都什么时候了,努力,奋斗!
分类:
PHP
标签:
JSON字符串转换为中文
, 中文转换为JSON字符串
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决