<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>白茶清欢的个人技术分享</title><link>https://www.ayumz.com/</link><description></description><item><title>SM2签名算法</title><link>https://www.ayumz.com/post/17.html</link><description>&lt;pre class=&quot;prism-highlight prism-language-java&quot;&gt;package&amp;nbsp;org.chemical;

import&amp;nbsp;cn.hutool.core.codec.Base64;
import&amp;nbsp;cn.hutool.crypto.SmUtil;
import&amp;nbsp;cn.hutool.crypto.asymmetric.SM2;
import&amp;nbsp;com.alibaba.fastjson.JSON;
import&amp;nbsp;lombok.extern.slf4j.Slf4j;

import&amp;nbsp;java.io.IOException;
import&amp;nbsp;java.nio.charset.StandardCharsets;
import&amp;nbsp;java.security.SecureRandom;
import&amp;nbsp;java.util.Arrays;
import&amp;nbsp;java.util.HashMap;
import&amp;nbsp;java.util.Map;
import&amp;nbsp;java.util.Random;

/**
&amp;nbsp;*
&amp;nbsp;*/
@Slf4j
public&amp;nbsp;class&amp;nbsp;Sm2Demo&amp;nbsp;{


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;String&amp;nbsp;publicKey;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;String&amp;nbsp;privateKey;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*&amp;nbsp;依赖
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dependency&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;cn.hutool&amp;lt;/groupId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;hutool-all&amp;lt;/artifactId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;5.8.0&amp;lt;/version&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/dependency&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;***********************第一部分：生成密钥******************************
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//1.生成新的公私钥
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SM2&amp;nbsp;sm2&amp;nbsp;=&amp;nbsp;SmUtil.sm2().initKeys();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//2.&amp;nbsp;获取公钥
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;publicKey&amp;nbsp;=&amp;nbsp;sm2.getPublicKeyBase64();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&amp;quot;生成了公私钥，公钥为：{}&amp;quot;,&amp;nbsp;publicKey);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//3.&amp;nbsp;获取私钥
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;privateKey&amp;nbsp;=&amp;nbsp;sm2.getPrivateKeyBase64();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&amp;quot;生成了公私钥，私钥为：{}&amp;quot;,&amp;nbsp;privateKey);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;main(String[]&amp;nbsp;args)&amp;nbsp;throws&amp;nbsp;IOException&amp;nbsp;{


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;***********************第二部分：请求发起方-处理请求数据&amp;nbsp;******************************
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;1.&amp;nbsp;构造业务数据
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Map&amp;lt;String,&amp;nbsp;Object&amp;gt;&amp;nbsp;body&amp;nbsp;=&amp;nbsp;new&amp;nbsp;HashMap&amp;lt;&amp;gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;body.put(&amp;quot;key1&amp;quot;,&amp;nbsp;System.nanoTime());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;body.put(&amp;quot;key2&amp;quot;,&amp;nbsp;&amp;quot;value2&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;body.put(&amp;quot;key3&amp;quot;,&amp;nbsp;Arrays.asList(&amp;quot;1.1&amp;quot;,&amp;quot;1.2&amp;quot;));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;2.&amp;nbsp;转成JSON字符串
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;bodyJson&amp;nbsp;=&amp;nbsp;JSON.toJSONString(body);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&amp;quot;请求体的json数据:&amp;nbsp;{}&amp;quot;,&amp;nbsp;bodyJson);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;3.&amp;nbsp;转成base64字符串

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;bodyValue&amp;nbsp;=&amp;nbsp;Base64.encode(bodyJson);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&amp;quot;请求体:&amp;nbsp;{}&amp;quot;,&amp;nbsp;toLog(bodyValue));


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;***********************第三部分：请求发起方-生成签名&amp;nbsp;******************************

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;获取当前时间戳（毫秒）&amp;nbsp;接收方会校验该值,&amp;nbsp;收到数据时不可超过1分钟
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;long&amp;nbsp;currentMillis&amp;nbsp;=&amp;nbsp;System.currentTimeMillis();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;获取随机数
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Random&amp;nbsp;random&amp;nbsp;=&amp;nbsp;new&amp;nbsp;SecureRandom();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;nonce&amp;nbsp;=&amp;nbsp;random.nextInt(1000000);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;拼接需要生成签名的数据
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;value1&amp;nbsp;=&amp;nbsp;String.format(&amp;quot;%s%s%s&amp;quot;,&amp;nbsp;bodyValue,&amp;nbsp;currentMillis,&amp;nbsp;nonce);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;获取数据摘要
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte[]&amp;nbsp;content1&amp;nbsp;=&amp;nbsp;value1.getBytes(StandardCharsets.UTF_8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;获取签名
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SM2&amp;nbsp;privateSm2&amp;nbsp;=&amp;nbsp;SmUtil.sm2(privateKey,&amp;nbsp;null);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;signature&amp;nbsp;=&amp;nbsp;Base64.encode(privateSm2.sign(content1));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;将时间戳、随机数、签名值，放到请求头中
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request.setHeader(&amp;quot;X-millis&amp;quot;,&amp;nbsp;currentMillis&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request.setHeader(&amp;quot;X-nonce&amp;quot;,&amp;nbsp;nonce&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request.setHeader(&amp;quot;X-signature&amp;quot;,&amp;nbsp;signature);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request.setHeader(&amp;quot;X-digest&amp;quot;,&amp;nbsp;digest);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&amp;quot;签名结果:&amp;nbsp;{},&amp;nbsp;value1={}&amp;quot;,&amp;nbsp;signature,&amp;nbsp;toLog(value1));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;***********************第四部分：请求接收方-验证签名&amp;nbsp;******************************

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;1.&amp;nbsp;从请求头获取&amp;nbsp;时间戳、随机数、签名值，从请求体获取base64的数据
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;millisFromRequestHeader&amp;nbsp;=&amp;nbsp;currentMillis+&amp;quot;&amp;quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;nonceFromRequestHeader&amp;nbsp;=&amp;nbsp;nonce+&amp;quot;&amp;quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;signatureFromRequestHeader&amp;nbsp;=&amp;nbsp;signature;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;valueFromRequestBody&amp;nbsp;=&amp;nbsp;bodyValue;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;2.&amp;nbsp;拼接数据
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;value2&amp;nbsp;=&amp;nbsp;String.format(&amp;quot;%s%s%s&amp;quot;,&amp;nbsp;bodyValue,&amp;nbsp;millisFromRequestHeader,&amp;nbsp;nonceFromRequestHeader);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte[]&amp;nbsp;content2&amp;nbsp;=&amp;nbsp;value2.getBytes(StandardCharsets.UTF_8);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;3.&amp;nbsp;验证签名
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte[]&amp;nbsp;signatureBytes&amp;nbsp;=&amp;nbsp;Base64.decode(signatureFromRequestHeader);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SM2&amp;nbsp;publicSm2&amp;nbsp;=&amp;nbsp;SmUtil.sm2(null,&amp;nbsp;publicKey);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;long&amp;nbsp;startTime&amp;nbsp;=&amp;nbsp;System.currentTimeMillis();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boolean&amp;nbsp;verify&amp;nbsp;=&amp;nbsp;publicSm2.verify(content2,&amp;nbsp;signatureBytes);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;long&amp;nbsp;endTime&amp;nbsp;=&amp;nbsp;System.currentTimeMillis();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;jsonParam&amp;nbsp;=&amp;nbsp;Base64.decodeStr(valueFromRequestBody);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&amp;quot;签名验证结果:&amp;nbsp;{},&amp;nbsp;耗时:&amp;nbsp;{}ms,&amp;nbsp;请求体的json数据:&amp;nbsp;{}&amp;quot;,&amp;nbsp;verify,&amp;nbsp;(endTime&amp;nbsp;-&amp;nbsp;startTime),&amp;nbsp;toLog(jsonParam));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(verify){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;验签通过，继续业务处理
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;do&amp;nbsp;something&amp;nbsp;...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;验签失败,&amp;nbsp;返回失败信息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;do&amp;nbsp;something&amp;nbsp;...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;String&amp;nbsp;toLog(String&amp;nbsp;bodyValue){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;bodyValue.length()&amp;nbsp;&amp;gt;&amp;nbsp;100&amp;nbsp;?&amp;nbsp;bodyValue.substring(0,&amp;nbsp;100)&amp;nbsp;:&amp;nbsp;bodyValue;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 17 Mar 2026 16:00:32 +0800</pubDate></item><item><title>重装电脑后，git拉取文件出现异常</title><link>https://www.ayumz.com/post/16.html</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;最近重装了一下系统，发现重装电脑后，git拉取文件出现异常提示&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;To add an exception for this directory, call:git config --global --add safe.directory&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;打开windows-powershell命令窗口：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;输入如下命令： git config --global --add safe.directory &amp;quot;*&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;回车，执行结束。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 18 Nov 2025 09:55:04 +0800</pubDate></item><item><title>Inno Setup 系列之自定义卸载文件名称的脚本</title><link>https://www.ayumz.com/post/15.html</link><description>&lt;p class=&quot;putong&quot;&gt;需求&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;Inno Setup 默认的自动生成的卸载程序名称为unins000，还包括一个同样名字的DAT格式文件。我想修改卸载程序Unins000的名称及其图标，但是却始终找不到该修改哪里！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;Inno Setup 支持在同一个目录中安装多个应用程序，所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe，unins001.exe，unins002.exe 等等。这是 Inno Setup 自身的功能。请参阅 http://www.jrsoftware.org/iskb.php?uninstallername 。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;UninstallDisplayName与UninstallDisplayIcon 这两个修改的只是程序在“添加\删除程序”控制面板里的名称与图标。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;一旦安装过程结束后，你当然可以将卸载文件的名称改成任意其它的文件名，注意的是你除了要更改安装目录里面的 unins00X.exe 和 unins00X.dat，还要更改注册表中的相关卸载信息。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;由于卸载程序文件的实际位置和名称可以用常量 {uninstallexe} 表示，所以你可以让你的安装程序自动进行这些修改，见示例脚本。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;putong&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; font-variant-ligatures: no-common-ligatures; text-wrap-mode: wrap; background-color: #FFFFFF;&quot;&gt;[Setup]&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;AppName=自定义卸载文件名示例程序
AppVerName=自定义卸载文件名示例程序&amp;nbsp;1.0
DefaultDirName={pf}\自定义卸载文件名示例程序
DefaultGroupName=自定义卸载文件名示例程序&lt;/pre&gt;&lt;p class=&quot;putong&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; font-variant-ligatures: no-common-ligatures; text-wrap-mode: wrap; background-color: #FFFFFF;&quot;&gt;[Files]&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;Source:&amp;nbsp;&amp;quot;MyTest.exe&amp;quot;;&amp;nbsp;DestDir:&amp;nbsp;&amp;quot;{app}&amp;quot;
Source:&amp;nbsp;&amp;quot;Readme.txt&amp;quot;;&amp;nbsp;DestDir:&amp;nbsp;&amp;quot;{app}&amp;quot;&lt;/pre&gt;&lt;p class=&quot;putong&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; font-variant-ligatures: no-common-ligatures; text-wrap-mode: wrap; background-color: #FFFFFF;&quot;&gt;[Code]&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;procedure&amp;nbsp;CurStepChanged(CurStep:&amp;nbsp;TSetupStep);
var
uninspath,&amp;nbsp;uninsname,&amp;nbsp;NewUninsName,&amp;nbsp;MyAppName:&amp;nbsp;string;
begin
if&amp;nbsp;CurStep=ssDone&amp;nbsp;then
begin
//&amp;nbsp;指定新的卸载文件名（不包含扩展名），请相应修改！
NewUninsName&amp;nbsp;:=&amp;nbsp;&amp;#39;卸载&amp;#39;;
//&amp;nbsp;应用程序名称，与&amp;nbsp;[Setup]&amp;nbsp;段的&amp;nbsp;AppName&amp;nbsp;必须一致，请相应修改！
MyAppName&amp;nbsp;:=&amp;nbsp;&amp;#39;自定义卸载文件名示例程序&amp;#39;;
//&amp;nbsp;以下重命名卸载文件
uninspath:=&amp;nbsp;ExtractFilePath(ExpandConstant(&amp;#39;{uninstallexe}&amp;#39;));
uninsname:=&amp;nbsp;Copy(ExtractFileName(ExpandConstant(&amp;#39;{uninstallexe}&amp;#39;)),1,8);
RenameFile(uninspath&amp;nbsp;+&amp;nbsp;uninsname&amp;nbsp;+&amp;nbsp;&amp;#39;.exe&amp;#39;,&amp;nbsp;uninspath&amp;nbsp;+&amp;nbsp;NewUninsName&amp;nbsp;+&amp;nbsp;&amp;#39;.exe&amp;#39;);
RenameFile(uninspath&amp;nbsp;+&amp;nbsp;uninsname&amp;nbsp;+&amp;nbsp;&amp;#39;.dat&amp;#39;,&amp;nbsp;uninspath&amp;nbsp;+&amp;nbsp;NewUninsName&amp;nbsp;+&amp;nbsp;&amp;#39;.dat&amp;#39;);
//&amp;nbsp;以下修改相应的注册表内容
if&amp;nbsp;RegKeyExists(HKEY_LOCAL_MACHINE,&amp;nbsp;&amp;#39;SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&amp;#39;&amp;nbsp;+&amp;nbsp;MyAppName&amp;nbsp;+&amp;nbsp;&amp;#39;_is1&amp;#39;)&amp;nbsp;then
begin
RegWriteStringValue(HKEY_LOCAL_MACHINE,&amp;nbsp;&amp;#39;SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&amp;#39;&amp;nbsp;+&amp;nbsp;MyAppName&amp;nbsp;+&amp;nbsp;&amp;#39;_is1&amp;#39;,&amp;nbsp;&amp;#39;UninstallString&amp;#39;,&amp;nbsp;&amp;#39;&amp;quot;&amp;#39;&amp;nbsp;+&amp;nbsp;uninspath&amp;nbsp;+&amp;nbsp;NewUninsName&amp;nbsp;+&amp;nbsp;&amp;#39;.exe&amp;quot;&amp;#39;);
RegWriteStringValue(HKEY_LOCAL_MACHINE,&amp;nbsp;&amp;#39;SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&amp;#39;&amp;nbsp;+&amp;nbsp;MyAppName&amp;nbsp;+&amp;nbsp;&amp;#39;_is1&amp;#39;,&amp;nbsp;&amp;#39;QuietUninstallString&amp;#39;,&amp;nbsp;&amp;#39;&amp;quot;&amp;#39;&amp;nbsp;+&amp;nbsp;uninspath&amp;nbsp;+&amp;nbsp;NewUninsName&amp;nbsp;+&amp;nbsp;&amp;#39;.exe&amp;quot;&amp;nbsp;/silent&amp;#39;);
end;
end;
end;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sat, 11 Oct 2025 14:38:37 +0800</pubDate></item><item><title>计算机磁盘旁黄色警示标志消除|BitLocker关闭方法</title><link>https://www.ayumz.com/post/14.html</link><description>&lt;p class=&quot;chunse&quot;&gt;现在新电脑都普遍默认都自动设置了磁盘锁BitLocker，导致无法重装系统，无法搜索到磁盘。这时候就要解锁了，不解锁的话在线重装系统也可以试试看。另外这个一直是感叹号的在哪里显示也让人膈应，有强迫症的人就必须要把它消除掉它。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509241758678939774487.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p class=&quot;lanse&quot;&gt;解决办法&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509241758678964899363.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;以管理员运行CMD，敲击回车键，如下窗口所示。然后输入&lt;span style=&quot;box-sizing: border-box; outline: 0px; font-weight: 700; font-synthesis-style: auto; overflow-wrap: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-synthesis-style: auto; overflow-wrap: break-word; background-color: #FFD900;&quot;&gt;manage-bde -status&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; font-weight: 700; font-synthesis-style: auto; overflow-wrap: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-synthesis-style: auto; overflow-wrap: break-word; background-color: #4DA8EE;&quot;&gt;下图是已经分区，并解锁后的状态&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; font-weight: 700; font-synthesis-style: auto; overflow-wrap: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-synthesis-style: auto; overflow-wrap: break-word; background-color: #4DA8EE;&quot;&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509241758679017395949.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; font-weight: 700; font-synthesis-style: auto; overflow-wrap: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-synthesis-style: auto; overflow-wrap: break-word; background-color: #4DA8EE;&quot;&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509241758679081775483.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;例如：&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;manage-bde –off d:&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 解密d盘的，如下图所示&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509241758679140496312.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; font-weight: 700; font-synthesis-style: auto; overflow-wrap: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-synthesis-style: auto; overflow-wrap: break-word; background-color: #4DA8EE;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 24 Sep 2025 09:54:41 +0800</pubDate></item><item><title>idea 2025.2.2 maven打包控制台乱码问题解决</title><link>https://www.ayumz.com/post/13.html</link><description>&lt;p&gt;升级到 idea 2025.2.2 后发现之前的 maven 工程打包出现乱码, 这里记录下如何配置编码&lt;/p&gt;&lt;p class=&quot;lvse&quot;&gt;1.先确保工程编码是UTF-8&lt;/p&gt;&lt;p&gt;打开 idea, 点击 File -&amp;gt; Settings 搜索 encoding, 将搜索结果出现的位置 全部设置为 UTF-8&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509181758182381624277.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p class=&quot;lvse&quot;&gt;2.设置 maven 编译参数&lt;/p&gt;&lt;p&gt;打开 idea, 点击 File -&amp;gt; Settings -&amp;gt; Build,Execution,Deployment -&amp;gt; Build Tools -&amp;gt; Maven -&amp;gt; Runner&lt;/p&gt;&lt;p&gt;(也可以在操作系统的环境变量里设置)&lt;/p&gt;&lt;p&gt;Name=MAVEN_OPTS&lt;/p&gt;&lt;p&gt;Value=-Dsun.stdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -Dconsole.encoding=UTF-8 -Dfile.encoding=UTF-8&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509181758182426275320.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;</description><pubDate>Thu, 18 Sep 2025 15:59:10 +0800</pubDate></item><item><title>解决：Error updating changes: detected dubious ownership in repository at</title><link>https://www.ayumz.com/post/12.html</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;在通过 Git Bash 提交项目代码时输入 git add . 命令后，报错：Error updating changes: detected dubious ownership in repository at ...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;这是因为 该项目的所有者 与 现在的用户 不一致&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;比如说： 该项目的所有者是 Administrator，而当前用户是 QIN, 那么就会导致上面的错误&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;解决的办法也很简单在终端命令 git bash 中输入&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;git&amp;nbsp;config&amp;nbsp;--global&amp;nbsp;--add&amp;nbsp;safe.directory&amp;nbsp;&amp;quot;*&amp;quot;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap-mode: wrap; background-color: #FFFFFF;&quot;&gt;赋予权限，即可解决这个异常。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Thu, 18 Sep 2025 15:47:23 +0800</pubDate></item><item><title>一条命令永久激活windows11</title><link>https://www.ayumz.com/post/11.html</link><description>&lt;p&gt;右键开始，选择终端管理员打开&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509111757555352464036.png&quot; alt=&quot;image.png&quot; style=&quot;text-wrap-mode: wrap;&quot;/&gt;&lt;/p&gt;&lt;p&gt;输入命令（win7系统用第一条，win10、win11用第二条）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;irm&amp;nbsp;https://massgrave.dev/get&amp;nbsp;|&amp;nbsp;iex

irm&amp;nbsp;https://get.activated.win&amp;nbsp;|&amp;nbsp;iex&lt;/pre&gt;&lt;p&gt;输完命令回车以后，等待一会，会出现一个弹窗，如下图：&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509111757555607539435.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;然后输入1回车，等待激活&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.ayumz.com/zb_users/upload/2025/09/202509111757555677822729.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;</description><pubDate>Thu, 11 Sep 2025 09:47:14 +0800</pubDate></item><item><title>fastreport四则运算</title><link>https://www.ayumz.com/post/10.html</link><description>&lt;article data-clipboard-cangjie=&quot;[&amp;quot;root&amp;quot;,{&amp;quot;copyFrom&amp;quot;:&amp;quot;im-native&amp;quot;},[&amp;quot;p&amp;quot;,{},[&amp;quot;span&amp;quot;,{&amp;quot;data-type&amp;quot;:&amp;quot;text&amp;quot;},[&amp;quot;span&amp;quot;,{&amp;quot;data-type&amp;quot;:&amp;quot;leaf&amp;quot;,&amp;quot;color&amp;quot;:&amp;quot;#171A1D&amp;quot;},&amp;quot;[FormatNumber([netWeight]-[priNetWeight],2)]&amp;quot;]]]]&quot;&gt;&lt;p class=&quot;putong&quot;&gt;两个数据相减，保留两位小数&lt;/p&gt;&lt;br/&gt;&lt;p&gt;[FormatNumber([netWeight]-[priNetWeight],2)]&lt;/p&gt;&lt;p class=&quot;putong&quot;&gt;两个数据相除，保留两位小数&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap-mode: wrap; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap-mode: wrap; background-color: #FFFFFF;&quot;&gt;[FormatNumber([X1]/[X2],2)]&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;putong&quot;&gt;两个数做加法运算&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;[[X1]+[X2]]&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; overflow: auto hidden; font-synthesis-style: auto; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 24px !important;&quot;&gt;&lt;span style=&quot;color: #4D4D4D;&quot;&gt;乘法和减法与上面算法&lt;/span&gt;&lt;font color=&quot;#4d4d4d&quot;&gt;一致&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap-mode: wrap; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;/article&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 04 Mar 2025 11:08:05 +0800</pubDate></item><item><title>对接XK3168仪表</title><link>https://www.ayumz.com/post/9.html</link><description>&lt;p class=&quot;putong&quot;&gt;&lt;span style=&quot;font-family: 宋体, SimSun; font-size: 18px;&quot;&gt;XK3168仪表通讯说明&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.ayumz.com/zb_users/upload/2024/08/202408151723689282692939.png&quot; title=&quot;Snipaste_2024-08-15_10-26-14.png&quot; alt=&quot;Snipaste_2024-08-15_10-26-14.png&quot;/&gt;&lt;/p&gt;&lt;p class=&quot;putong&quot;&gt;&lt;span style=&quot;font-family: 宋体, SimSun; font-size: 18px;&quot;&gt;Java对接仪表&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: 宋体, SimSun; font-size: 16px;&quot;&gt;这边用的串口服务，将串口转成TCP通讯，但是解析方式是一样的。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot;&gt;&amp;nbsp;&amp;nbsp;while&amp;nbsp;(ips.read(bytes)&amp;nbsp;!=&amp;nbsp;-1)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.sleep(300);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;length&amp;nbsp;=&amp;nbsp;ips.read(bytes);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte[]&amp;nbsp;readBuffer&amp;nbsp;=&amp;nbsp;new&amp;nbsp;byte[length];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.arraycopy(bytes,&amp;nbsp;0,&amp;nbsp;readBuffer,&amp;nbsp;0,&amp;nbsp;length);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&amp;nbsp;valueToFind&amp;nbsp;=&amp;nbsp;(byte)&amp;nbsp;0xff;&amp;nbsp;//&amp;nbsp;要查找的值
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boolean&amp;nbsp;found&amp;nbsp;=&amp;nbsp;findValue(readBuffer,&amp;nbsp;valueToFind);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(found)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.info(&amp;quot;仪表&amp;quot;,&amp;nbsp;this.config.getIp(),&amp;nbsp;&amp;quot;地磅数据&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;Arrays.toString(readBuffer));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;0xff&amp;nbsp;出现的位置
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte[]&amp;nbsp;bytes1&amp;nbsp;=&amp;nbsp;new&amp;nbsp;byte[5];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;index&amp;nbsp;=&amp;nbsp;lastIndexOf(readBuffer,valueToFind);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//LogUtils.info(&amp;quot;仪表&amp;quot;,&amp;nbsp;this.config.getIp(),&amp;nbsp;&amp;quot;地磅数据FF的最后一次出现位置&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;index);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;indexed&amp;nbsp;=&amp;nbsp;indexOf(readBuffer,valueToFind);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//LogUtils.info(&amp;quot;仪表&amp;quot;,&amp;nbsp;this.config.getIp(),&amp;nbsp;&amp;quot;地磅数据FF的第一次出现位置&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;indexed);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(index&amp;nbsp;&amp;gt;&amp;nbsp;-1){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;len=&amp;nbsp;readBuffer.length&amp;nbsp;-&amp;nbsp;index;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//LogUtils.info(&amp;quot;仪表&amp;quot;,&amp;nbsp;this.config.getIp(),&amp;nbsp;&amp;quot;地磅数据FF的最后一次出现时是否够截取的长度&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;len);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(len&amp;gt;=5)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.arraycopy(readBuffer,&amp;nbsp;index,&amp;nbsp;bytes1,&amp;nbsp;0,&amp;nbsp;5);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.info(&amp;quot;仪表&amp;quot;,&amp;nbsp;this.config.getIp(),&amp;nbsp;&amp;quot;要解析的数据&amp;nbsp;=&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;Arrays.toString(bytes1));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;weight&amp;nbsp;=&amp;nbsp;MeterDadaParser.TF5ParseData(bytes1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendWeightData(weight);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(indexed&amp;nbsp;&amp;gt;&amp;nbsp;-1)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;len1&amp;nbsp;=&amp;nbsp;readBuffer.length&amp;nbsp;-&amp;nbsp;indexed;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//LogUtils.info(&amp;quot;仪表&amp;quot;,&amp;nbsp;this.config.getIp(),&amp;nbsp;&amp;quot;地磅数据FF的第一次出现时是否够截取的长度&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;len1&amp;nbsp;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(len1&amp;nbsp;&amp;gt;=&amp;nbsp;5)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.arraycopy(readBuffer,&amp;nbsp;indexed,&amp;nbsp;bytes1,&amp;nbsp;0,&amp;nbsp;5);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.info(&amp;quot;仪表&amp;quot;,&amp;nbsp;this.config.getIp(),&amp;nbsp;&amp;quot;要解析的数据&amp;nbsp;=&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;Arrays.toString(bytes1));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;weight&amp;nbsp;=&amp;nbsp;MeterDadaParser.TF5ParseData(bytes1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendWeightData(weight);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
		}
}&lt;/pre&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot;&gt;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;int&amp;nbsp;TF5ParseData(byte[]&amp;nbsp;data)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;d5&amp;nbsp;=&amp;nbsp;(data[1]&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;5)&amp;nbsp;&amp;amp;&amp;nbsp;0x01;&amp;nbsp;//符号
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&amp;nbsp;GE&amp;nbsp;=&amp;nbsp;(byte)&amp;nbsp;(data[2]&amp;nbsp;&amp;amp;&amp;nbsp;0x0F);&amp;nbsp;//个位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;intGE=&amp;nbsp;Math.abs(GE);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&amp;nbsp;SHI&amp;nbsp;=&amp;nbsp;(byte)&amp;nbsp;(data[2]&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;4);&amp;nbsp;//十位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;intSHI&amp;nbsp;=&amp;nbsp;&amp;nbsp;Math.abs(SHI)*&amp;nbsp;10;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&amp;nbsp;BAI&amp;nbsp;=&amp;nbsp;(byte)&amp;nbsp;(data[3]&amp;nbsp;&amp;amp;&amp;nbsp;0x0F);&amp;nbsp;//百位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;intBAI&amp;nbsp;=&amp;nbsp;&amp;nbsp;Math.abs(BAI)&amp;nbsp;*&amp;nbsp;100;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&amp;nbsp;QIAN&amp;nbsp;=&amp;nbsp;(byte)&amp;nbsp;(data[3]&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;4);&amp;nbsp;//千位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;intQIAN&amp;nbsp;=&amp;nbsp;Math.abs(QIAN)&amp;nbsp;*&amp;nbsp;1000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&amp;nbsp;WAN&amp;nbsp;=&amp;nbsp;(byte)&amp;nbsp;(data[4]&amp;nbsp;&amp;amp;&amp;nbsp;0x0F);&amp;nbsp;//万位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;intWAN&amp;nbsp;=&amp;nbsp;Math.abs(WAN)&amp;nbsp;*&amp;nbsp;10000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&amp;nbsp;SHIWAN&amp;nbsp;=&amp;nbsp;(byte)&amp;nbsp;(data[4]&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;4);&amp;nbsp;//十万位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;intSHIWAN&amp;nbsp;=&amp;nbsp;Math.abs(SHIWAN)&amp;nbsp;*&amp;nbsp;100000;
//
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;number&amp;nbsp;=&amp;nbsp;intGE&amp;nbsp;+&amp;nbsp;intSHI&amp;nbsp;+&amp;nbsp;intBAI&amp;nbsp;+&amp;nbsp;intQIAN&amp;nbsp;+&amp;nbsp;intWAN&amp;nbsp;+&amp;nbsp;intSHIWAN;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;sign&amp;nbsp;=&amp;nbsp;&amp;quot;+&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;截取符号位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reading&amp;nbsp;=&amp;nbsp;String.valueOf(number),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;截取数据位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fraction&amp;nbsp;=&amp;nbsp;&amp;quot;&amp;quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;截取小数位
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(Cache.isDebug)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;StrUtil.format(&amp;quot;数据位:{},符号位:{},读数为:{},小数位:{}\r\n&amp;quot;,&amp;nbsp;data,&amp;nbsp;sign,&amp;nbsp;reading,&amp;nbsp;fraction));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;d5&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;符号&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;intGE&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;个位&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;intSHI&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;十位&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;intBAI&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;百位&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;intQIAN&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;千位&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;intWAN&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;万位&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;intSHIWAN&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;十万位&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogUtils.warn(LogUtils.DEVICE_TYPE_YB,&amp;nbsp;number&amp;nbsp;+&amp;nbsp;&amp;quot;&amp;nbsp;KG&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Integer.parseInt(MeterDataUtil.packageData(sign,&amp;nbsp;reading));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 15 Aug 2024 10:34:16 +0800</pubDate></item><item><title>正则匹配车牌号带新能源</title><link>https://www.ayumz.com/post/8.html</link><description>&lt;pre class=&quot;prism-highlight prism-language-csharp&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;string&amp;nbsp;carNumRegex&amp;nbsp;=&amp;nbsp;@&amp;quot;^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$&amp;quot;;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 19 Jul 2024 18:23:28 +0800</pubDate></item></channel></rss>