解决使用Okhttp+Retrofit 发送网络请求得到Json是unicode问题

Okhttp实现上传文件+参数请求接口form-data 然后controller层的传参需要用@RequestParam或者直接一个请求的实体类,如果使用实体类,千万不要加@RequestBody,不然结合上传文件会失效,上传文件使用。有时候需要对接一些接口,而且接口传参不仅需要各种类型的参数,甚至还要上传文件,所以遇到挺多坑,用postman的生成代码也不好用,于是就有了这篇文章。@RequestPart("file") MultipartFile file进行传参。话不多说,我们直接上代码。首先是service层。 阅读详情

我们在用Okhttp和Retrofit发送网络请求时,得到的json中汉子是unicode编码,如图

此时我们需要在Okhttp初始化的时候设置它的网络编辑器,同时将返回值的编码改成UTF-8.

之前设置的OKhttp

        HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
        logging.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient client = new OkHttpClient.Builder()
                .retryOnConnectionFailure(true)
                .connectTimeout(1800, TimeUnit.SECONDS)
                .readTimeout(1800, TimeUnit.SECONDS)
                .writeTimeout(1800, TimeUnit.SECONDS)
                .addNetworkInterceptor(logging)
                .addInterceptor(new Interceptor() {
                    @Override
                    public Response intercept(Chain chain) throws IOException {
                        Request request = chain.request().newBuilder()
                                .header("is_app", "1")
                                .build();
                        return chain.proceed(request);
                    }
                }).build();

我们可以将HttpLoggingInterceptor里面的Logger接口实现我们自己的一个方式,打印出我们想要的数据。那么我们可以如下操作:

1.新建一个类HttpLogger,让它实现HttpLoggingInterceptor的Logger

public class HttpLogger implements HttpLoggingInterceptor.Logger {
    private StringBuilder mMessage = new StringBuilder();
    private static final String TAG = "HttpLogger";
    @Override
    public void log(String message) {
        // 请求或者响应开始
        if (message.startsWith("--> POST")) {
            mMessage.setLength(0);
        }
        // 以{}或者[]形式的说明是响应结果的json数据,需要进行格式化
        if ((message.startsWith("{") && message.endsWith("}"))
                || (message.startsWith("[") && message.endsWith("]"))) {
            message = JsonUtil.formatJson(JsonUtil.decodeUnicode(message));
        }
        mMessage.append(message.concat("\n"));
        // 响应结束,打印整条日志
        if (message.startsWith("<-- END HTTP")) {
            MyLogger.d(TAG,mMessage.toString());
        }
    }
}

这样我们就实现了我们自己打印log的方式。

2.新建JsonUtil的工具类,看一下:

public class JsonUtil {
    /**
     * 格式化json字符串
     *
     * @param jsonStr 需要格式化的json串
     * @return 格式化后的json串
     */
    public static String formatJson(String jsonStr) {
        if (null == jsonStr || "".equals(jsonStr)) return "";
        StringBuilder sb = new StringBuilder();
        char last = '\0';
        char current = '\0';
        int indent = 0;
        for (int i = 0; i < jsonStr.length(); i++) {
            last = current;
            current = jsonStr.charAt(i);
            //遇到{ [换行,且下一行缩进
            switch (current) {
                case '{':
                case '[':
                    sb.append(current);
                    sb.append('\n');
                    indent++;
                    addIndentBlank(sb, indent);
                    break;
                //遇到} ]换行,当前行缩进
                case '}':
                case ']':
                    sb.append('\n');
                    indent--;
                    addIndentBlank(sb, indent);
                    sb.append(current);
                    break;
                //遇到,换行
                case ',':
                    sb.append(current);
                    if (last != '\\') {
                        sb.append('\n');
                        addIndentBlank(sb, indent);
                    }
                    break;
                default:
                    sb.append(current);
            }
        }
        return sb.toString();
    }
 
    /**
     * 添加space
     *
     * @param sb
     * @param indent
     */
    private static void addIndentBlank(StringBuilder sb, int indent) {
        for (int i = 0; i < indent; i++) {
            sb.append('\t');
        }
    }
    /**
     * http 请求数据返回 json 中中文字符为 unicode 编码转汉字转码
     *
     * @param theString
     * @return 转化后的结果.
     */
    public static String decodeUnicode(String theString) {
        char aChar;
        int len = theString.length();
        StringBuffer outBuffer = new StringBuffer(len);
        for (int x = 0; x < len; ) {
            aChar = theString.charAt(x++);
            if (aChar == '\\') {
                aChar = theString.charAt(x++);
                if (aChar == 'u') {
                    int value = 0;
                    for (int i = 0; i < 4; i++) {
                        aChar = theString.charAt(x++);
                        switch (aChar) {
                            case '0':
                            case '1':
                            case '2':
                            case '3':
                            case '4':
                            case '5':
                            case '6':
                            case '7':
                            case '8':
                            case '9':
                                value = (value << 4) + aChar - '0';
                                break;
                            case 'a':
                            case 'b':
                            case 'c':
                            case 'd':
                            case 'e':
                            case 'f':
                                value = (value << 4) + 10 + aChar - 'a';
                                break;
                            case 'A':
                            case 'B':
                            case 'C':
                            case 'D':
                            case 'E':
                            case 'F':
                                value = (value << 4) + 10 + aChar - 'A';
                                break;
                            default:
                                throw new IllegalArgumentException(
                                        "Malformed   \\uxxxx   encoding.");
                        }
 
                    }
                    outBuffer.append((char) value);
                } else {
                    if (aChar == 't')
                        aChar = '\t';
                    else if (aChar == 'r')
                        aChar = '\r';
                    else if (aChar == 'n')
                        aChar = '\n';
                    else if (aChar == 'f')
                        aChar = '\f';
                    outBuffer.append(aChar);
                }
            } else
                outBuffer.append(aChar);
        }
        return outBuffer.toString();
    }
 
}

它有两个方法:a 将打印出来的数据更清晰化 b 将unicode编码改成utf-8

3.将新建的HttpLogger添加到网络请求拦截器中

        HttpLogger httpLogger = new HttpLogger();
        HttpLoggingInterceptor logging = new HttpLoggingInterceptor(httpLogger);
        logging.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient client = new OkHttpClient.Builder()
                .retryOnConnectionFailure(true)
                .connectTimeout(1800, TimeUnit.SECONDS)
                .readTimeout(1800, TimeUnit.SECONDS)
                .writeTimeout(1800, TimeUnit.SECONDS)
                .addNetworkInterceptor(logging)
                .addInterceptor(new Interceptor() {
                    @Override
                    public Response intercept(Chain chain) throws IOException {
                        Request request = chain.request().newBuilder()
                                .header("is_app", "1")
                                .build();
                        return chain.proceed(request);
                    }
                }).build();
 

这样打印出来的数据就很明朗了:

{
                                                           	"success":true,
                                                           	"description":"成功",
                                                           	"biz":{
                                                           		"goods_info":{
                                                           			"real_payment":"100.00",
                                                           			"goods_name":"针织衫",
                                                           			"mailcode":"3912691654392",
                                                           			"mailcode_company":"yunda",
                                                           			"status":100,
                                                           			"goods_images":"https://img.kaishiqianbao.com/2018-05-08/shop_goods5af1315d7fba6376811.jpeg"
                                                           		},
                                                           		"logistics":{
                                                           			"message":"ok",
                                                           			"nu":"3912691654392",
                                                           			"ischeck":"1",
                                                           			"condition":"F00",
                                                           			"com":"yunda",
                                                           			"status":"200",
                                                           			"state":"3",
                                                           			"data":[
                                                           				{
                                                           					"time":"2017-12-28 18:51:24",
                                                           					"ftime":"2017-12-28 18:51:24",
                                                           					"context":"[
                                                           						北京主城区公司昌平融泽嘉园服务部
                                                           					]快件已被 已签收 签收",
                                                           					"location":"北京主城区公司昌平融泽嘉园服务部"
                                                           				},
                                                           				{
                                                           					"time":"2017-12-28 18:46:54",
                                                           					"ftime":"2017-12-28 18:46:54",
                                                           					"context":"[
                                                           						北京主城区公司昌平融泽嘉园服务部
                                                           					]进行派件扫描;派送业务员:雷森浩;联系电话:17610460722",
                                                           					"location":"北京主城区公司昌平融泽嘉园服务部"
                                                           				}
                                                           			]
                                                           		}
                                                           	}
                                                           }

Android+PHP+MySQL登录系统实战:从环境搭建到安全加固 移动应用登录模块是典型的跨端协同场景,涉及客户端网络通信、Web API接口设计与关系型数据库持久化三层技术栈。其核心原理在于HTTP协议驱动的数据交换机制与服务端状态管理策略,技术价值体现在高并发下的响应稳定性、用户凭证的安全存储及前后端职责的清晰解耦。典型应用场景包括企业级App用户体系构建、外包项目快速交付以及老旧系统现代化重构。本文聚焦Android Studio与PHP MySQL环境贯通、Retrofit通信配置、密码安全哈希(如PASSWORD_ARGON2ID)、防重复提交交互设计及Redi 阅读详情

相关推荐

构建统一大模型接口层:从设计到全端适配的工程实践

在微服务与云原生架构中,API网关作为核心基础设施,负责流量管理、协议转换与统一认证。其设计原理遵循单一职责与开闭原则,通过抽象层解耦客户端与具体服务实现。这一模式的技术价值在于提升系统可维护性、增强健壮性并优化资源成本。在人工智能应用场景中,面对多样化的模型提供商(如OpenAI、Claude、DeepSeek),直接调用各厂商API会导致代码重复、维护困难。因此,构建一个统一的大模型接口层(或称AI网关)成为关键工程实践。该层通过定义标准数据模型、采用适配器模式封装差异,并集成重试、熔断、上下文管理等策

weixin_30847939的博客 335

Android+PHP+MySQL登录注册系统实战指南

用户认证是移动应用开发的基础能力,其核心在于前后端安全、稳定、可调试的HTTP交互。理解HTTP请求响应机制、密码加盐哈希原理、SQL注入防护手段,是构建可靠登录系统的前提。技术价值体现在轻量可控——无需复杂框架即可实现跨安卓机型兼容、HTTPS通信、数据库防注入与字段级数据校验。典型应用场景包括教育类App、本地化工具软件等对高并发无要求但强调快速上线与自主运维的项目。本文聚焦Android原生客户端、PHP原生后端与MySQL数据库协同落地的真实链路,覆盖OkHttp网络调度、PDO预处理、utf8mb

weixin_34162228的博客 393

Rider接入豆包与智谱AI的插件开发实战指南

IDE智能编程辅助是现代开发者提效的核心能力,其本质是将编辑器上下文(如代码结构、光标语义、项目元信息)与大模型API深度协同。本文聚焦JetBrains Rider这一.NET专属IDE,解析如何基于IntelliJ平台规范,构建可生产落地的AI插件——涵盖PSI语法树解析、流式SSE响应处理、豆包开放平台与智谱ZCode双协议适配、企业级安全网关集成等关键技术环节。内容直击Rider用户长期缺失开箱即用AI支持的痛点,提供从插件工程搭建、Token安全存储到函数调用(Function Calling)落

weixin_33894640的博客 391

解决利用Okhttp+Retrofit 发送网络请求得到json是unicode

我们在用Okhttp和Retrofit发送网络请求时,得到的json中汉子是unicode编码,如图 此时我们需要在Okhttp初始化的时候设置它的网络编辑器,同时将返回值的编码改成UTF-8. 之前设置的OKhttp HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); loggi...

木头小颖的博客 2017

逆向动态Token与加密参数:从原理到实战的完整指南

在现代Web与API通信中,身份认证与数据安全是核心基础。Token作为临时凭证,实现了无状态的身份验证,其动态性源于生命周期、刷新机制及防重放绑定。加密参数(如sign)则通过哈希算法和密钥,确保请求的完整性与合法性,防止数据在传输中被篡改。理解这些机制的技术价值在于,它不仅是构建安全系统的基石,也是进行合法合规的自动化测试、数据集成与安全审计的前提。在实际应用场景中,无论是分析登录流程、模拟API调用还是进行安全评估,掌握Token与签名参数的生成逻辑都至关重要。本文聚焦于动态Token与加密参数的逆向

weixin_34354173的博客 441

Java中请求乱码解决方法

这种情况通常是由于请求参数中包含了非标准字符,或者请求使用的字符编码与服务器端的字符编码不一致所导致的。如果我们希望所有请求都使用同一种字符编码进行解析,可以修改服务器的默认字符编码。如果我们希望在整个应用程序中统一处理请求编码问题,可以使用过滤器来拦截请求,并设置请求的字符编码。在接收到请求时,我们可以通过设置请求的字符编码,来确保正确地解析请求参数。这将把请求的字符编码设置为UTF-8,确保能正确解析包含中文等非标准字符的请求参数。方法中,我们将请求的字符编码设置为指定的编码,并继续处理请求。

FcRuby的博客 1633

【Android】OkHttp和Retrofit拿到的json数据是Unicode,我要的是UTF-8呀

不管是用HttpClient还是用OkHttp,都可以用来请求网络,然后拿到后台返回的json数据,然后按需要一步步解析。当然,我们有时候需要先确认返回的json数据中某个字段有没有数据,我们拿到json字符串,然后用工具把它格式化,就可以人性化地看json数据。json数据中的数字和字母一般都不会因为编码发生变化,但是汉字就比较特殊,会在GBK、UTF-8中有不同的表现形式。之前我用的是Async

大船 6487

安卓校园APP全栈开发实战:从传统MVC到现代架构的演进与避坑指南

移动应用开发的核心在于构建稳定、高效的数据交互与用户界面。其基本原理通常遵循经典的分层架构,如MVC模式,将表现层、控制层与模型层分离,以实现代码的解耦与可维护性。在技术价值上,一个设计良好的架构能显著提升开发效率、应用性能及安全性。尤其在校园服务、信息管理等应用场景中,可靠的后端接口与流畅的前端体验至关重要。本文聚焦于一个典型的校园综合服务APP案例,深入剖析其从客户端网络请求、数据解析展示到服务器端数据库交互的全链路实现。文中将详细探讨如何优化网络请求以避免主线程阻塞,并解析ListView与Recyc

weixin_34007020的博客 351

通过http.client解析url返回的数据时为什么中文变成了unicode码

今天在解析json数据的时候得到了一堆这样的数据:{"errNum":0,"errMsg":"success","retData":[{"title":"\u6536\u5e9f\u54c1\u5927\u53d4\u521a\u4e0a\u53f0\uff0c\u5c31\u60e8\u906d\u8bc4\u59d4\u706d\u706f\uff0c\u4f46\u63a5\u4e0b\u6765\u5168\u573a\u90fd\u9707\u60ca\u4e86\uff01","url":"ht

tbdp6411的专栏 3020

互联网医院系统源码:MySQL行级锁+原生APP+SpringBoot硬核实践

互联网医院系统是医疗信息化的关键载体,其核心在于高并发、强一致、严合规的工程落地能力。从数据库事务控制原理出发,MySQL行级锁与乐观锁组合保障处方库存零超卖;原生APP并非技术偏好,而是满足等保三级对敏感数据加密、医保刷脸SDK集成及离线问诊的刚性要求;SpringBoot在此场景下需深度定制JWT鉴权、JVM调优与JSON字段治理。技术价值体现在真实三甲医院全链路验证——挂号、问诊、处方、结算日均3000+并发稳定运行。典型应用场景包括民营连锁诊所快速部署、省级平台等保测评适配及医保接口对接。本文聚焦可

diaoju3333的博客 471

小额贷款系统源码修复版:可审计、可交付的金融业务原型

小额贷款系统是金融科技领域基础而关键的业务载体,其核心在于信贷状态机建模、API安全路由与数据库事务一致性。本文从金融级数据建模原理出发,详解如何通过MySQL ENUM约束、Flyway版本化迁移和外键完整性保障状态合法性;结合Spring WebMvc统一参数绑定与@ModelAttribute设计,解决Android端400错误等工程痛点;进一步以状态模式+领域事件驱动还款计划生成,实现高内聚低耦合的业务逻辑。适用于银行沙盒验证、消金公司测试环境搭建及高校信贷流程实训,特别聚焦‘小额贷款网络贷款系统源

weixin_31155097的博客 43

json 格式化工具_【Android】OkHttp、Retrofit拿到的json是Unicode,我要的是UTF-8呀

不管是用HttpClient还是用OkHttp,都可以用来请求网络,然后拿到后台返回的json数据,然后按需要一步步解析。当然,我们有时候需要先确认返回的json数据中某个字段有没有数据,我们拿到json字符串,然后用工具把它格式化,就可以人性化地看json数据。json数据中的数字和字母一般都不会因为编码发生变化,但是汉字就比较特殊,会在GBK、UTF-8中有不同的表现形式。之前我用的是Asyn...

weixin_39970994的博客 221

Java派单系统实战:双层权重调度与状态机一致性设计

任务派单系统是物流、本地生活等实时服务场景的核心基础设施,其本质是基于地理围栏与动态权重的实时任务分配问题。原理上需融合距离计算、负载均衡、履约率评估等多维因子,并通过分布式锁、状态机、本地缓存等机制保障数据强一致与高可用。技术价值体现在可灰度、可监控、可热更新的工程化落地能力,而非简单排序或CRUD。典型应用场景包括即时配送、家政调度、维修工单分派等对时效性与状态准确性要求严苛的业务。本文聚焦Java+Android双端协同下的派单引擎实现,深入解析双层权重滑动窗口算法与订单状态机闭环设计,覆盖Redis

weixin_33802505的博客 390

go json数据出现unicode_【Android】OkHttp、Retrofit拿到的json是Unicode,我要的是UTF-8呀...

不管是用HttpClient还是用OkHttp,都可以用来请求网络,然后拿到后台返回的json数据,然后按需要一步步解析。当然,我们有时候需要先确认返回的json数据中某个字段有没有数据,我们拿到json字符串,然后用工具把它格式化,就可以人性化地看json数据。json数据中的数字和字母一般都不会因为编码发生变化,但是汉字就比较特殊,会在GBK、UTF-8中有不同的表现形式。之前我用的是Asyn...

weixin_30767895的博客 263

高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命

高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命

yingtu666的博客 5149

全志D1s RISC-V开发板硬件设计与Linux启动全流程解析

RISC-V架构是当前国产嵌入式处理器演进的核心方向,其启动流程涵盖从BootROM、SPL到U-Boot及Linux内核的多级引导机制。理解该流程需掌握DDR初始化、设备树适配、电源时序控制等底层原理,技术价值在于构建可追溯、可调试、可量产的最小可行系统(MVS)。典型应用场景包括边缘AI推理终端、工业HMI和轻量级网关等对成本与开源性敏感的领域。本文以全志D1s平台为载体,深入剖析基于玄铁C906内核的RISC-V SoC在真实硬件上的启动验证、电源完整性设计与Linux全链路开源实践。

weixin_32306683的博客 356

利用logger打印完整的okhttp网络请求和响应日志

利用logger打印完整的okhttp网络请求和响应日志 xiaoyanger 关注 2017.01.17 00:31* 字数 909 阅读 7107评论 14喜欢 44 ...

daimengs的博客 8866

Verilog中generate for循环的5个实战技巧(附完整代码示例)

本文详细介绍了Verilog中generate for循环的5个高级实战技巧,包括参数化模块实例化、条件化生成、多维硬件结构实现等,并附有完整代码示例。这些技巧能显著提升FPGA开发效率,特别适合中级Verilog开发者学习应用。

weixin_28725949的博客 187

Android+PHP+MySQL全链路登录认证实战指南

用户认证是移动应用最基础也最复杂的系统工程,其本质是跨端协同的身份可信验证过程。它涉及客户端生命周期管理、网络状态感知与异常恢复、服务端密码安全存储与防暴力破解、数据库索引优化与碎片治理等多层技术原理。在真实场景中,弱网重连、并发冲突、SQL注入、会话劫持、字符集错配等问题频发,仅靠‘写个接口+调个API’无法保障稳定可用。本文聚焦 Android 登录注册与 PHP MySQL 后端的深度协同,覆盖 Retrofit 协程绑定、bcrypt 密码哈希、utf8mb4 字符集配置、覆盖索引设计等关键实践,为

weixin_34112181的博客 365

CH582低功耗实战:从1.2mA降到5uA,我的蓝牙广播功耗优化笔记

本文详细记录了沁恒CH582蓝牙芯片从1.2mA降至5μA的功耗优化全过程。通过建立基准测试环境、分层排查软件配置与IO状态、精细调优射频参数以及硬件层面的电源管理,实现了极致的低功耗表现。文章还提供了实用的功耗测量方法和典型问题排查指南,为蓝牙设备开发者提供了宝贵的参考经验。

weixin_30368405的博客 572

SerDes电路的PCB仿真设计规则及策略

SerDes的PCB设计中,重点工作是使用3D 电磁 (EM) 场求解器,进行过孔结构优化,包括 BGA的扇入和扇出区域以及布线的过孔区域,并且,利用连接器供应商提供加密的 3D 模型,进行连接器和 PCB 的级联仿真,最终获取系统级的通道性能参数,如插入损耗、回波损耗、串扰和模式转换、阻抗曲线等,如果发现任何缺陷,再进行进一步优化,这一过程中,推荐进行拆分仿真,以提高设计效率。

一只豌豆象的博客 2190

OpenHarmony平台原生三方库适配情况

本文档汇总了OpenHarmony平台适配的三方库情况,包括已适配的三方库。这些库覆盖了工具管理、UI组件、通信网络、文件存储、媒体处理等多个功能领域,为开发者提供了丰富的选择。1、OpenHarmony平台已适配三方库本部分列出了已成功适配到OpenHarmony平台的三方库,这些库经过了适配和测试,能够在OpenHarmony设备上正常运行。

OH_TPC的博客 888

Python爬虫实战:抓取全球船舶AIS定位数据的全流程指南

AIS(Automatic Identification System)自动识别系统是目前全球航运中用于实时跟踪船只位置的主要技术。名称、MMSI编号、呼号实时经纬度船速、航向吃水、目的港状态(航行/停泊/锚泊)航线信息等🛰️海上运输监控:追踪航线,预估到港时间;🛳️船舶管理系统:为物流、港口运营提供决策依据;🌊研究分析:如海洋运输碳排放研究、船只拥堵热力图等;🧠人工智能训练数据集:用于轨迹预测、碰撞预警模型。

2201_76125261的博客 1361

逆向实战指南:JS与安卓逆向实用技巧与排坑手册

逆向工程作为安全研究、漏洞挖掘与数据恢复的基础技术,其核心在于理解程序实现逻辑与数据流转机制。通过抓包定位请求参数、Hook关键函数、补环境在本地运行目标代码,以及识别so层控制流平坦化等手法,工程师能够系统性地解析Web与移动端应用。在实际分析中,从现象到根因的排查过程往往充满琐碎陷阱,比如抓不到包、Hook未生效、环境报错等。掌握一套高效的逆向分析路径,可以显著提升从代码还原到协议重放的工程效率。本文汇总实战中的多则逆向技巧,覆盖JS逆向、安卓逆向、协议分析与常见坑点处理,旨在为初学者和卡壳中的开发者提

weixin_28607671的博客 416

【XSRP软件无线电】基于软件无线电平台的FM数字接收系统设计(含有完整工程资料获取链接)

随着无线通信技术的快速发展,软件无线电(Software Defined Radio, SDR)作为一种新兴的无线通信技术,逐渐成为研究和应用的热点。传统的无线接收机通常依赖于专用硬件实现其功能,灵活性和可扩展性有限。相较之下,软件无线电利用软件来实现信号处理和调制解调功能,能够适应多种频率和调制方式,使无线通信系统更加灵活和高效。在FM(频率调制)广播中,数字接收技术的应用不仅提高了信号的抗干扰能力,还能提供更好的音质和更多的附加信息(如广播电台名称、节目内容等)。

嵌入式技术开发 1366

使用 MATLAB/Simulink + Simscape Electrical + Simulink Design Optimization,构建一个基于SiC/GaN的Z源逆变器在储能系统中的软启

《手把手教你学Simulink:Z源逆变器在储能系统中的应用》摘要 本文详细介绍了使用MATLAB/Simulink构建Z源逆变器储能系统仿真模型的全过程。Z源逆变器凭借其独特的阻抗网络结构,解决了传统逆变器在直通保护和升压能力方面的痛点。文章通过6个关键步骤:主电路搭建、调制策略设计、软启动实现、仿真分析、效率对比和工程问题解决方案,完整展示了Z源逆变器从理论到仿真的实现路径。重点讲解了直通零矢量SPWM调制策略和渐进式升压比控制方法,验证了系统93.3%的效率和优异的抗扰性能。该模型为光伏储能、电动汽车

MHD0815的博客 122
上一篇: Android Studio中删除Git关联
下一篇: ES文件浏览器ftp文件共享,通过电脑访问手机文件夹传输文件
ChengLuo.
博客等级 码龄11年 144粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值