steam客户端乱码疑似中文乱码怎么解决

狂月游戏乱码怎么办?乱码解决办法
日 来源:游迅网 编辑:纯真
& &《狂月》游戏中有玩家遇到乱码的现象,究竟该如何解决呢?看看以下的解决方法。
& & 游戏可能会出现字幕乱码的现象,具体解决如下:
& & 1、先***游戏目录中的&applocale.msi&插件;
& & 2、***之后,在&C:\Windows\AppPatch&中找到&AppLoc.exe&程序并打开;
& & 3、选择下一步,在&启动应用程序&中浏览游戏目录下的&Game.exe&游戏主程序;
& & 4、选择下一步,在&应用程序的语言&中选择日语;
& & 5、下一步,完成,进入游戏字幕即可正常显示。
& & 特别说明:请将游戏放在全英文目录下,否则无法使用转码工具。
& &希望以上的方法能够帮助到大家,以供参考。
看完这篇文章有何感觉?
相关攻略及下载:7-17-241-95-1912-41-237-111-158-18·6-22
48小时热门评论
一周热点资讯
好啦!妹子你别撒娇了,今夜我是你的了! 妹子,我就喜欢看你用这种方式炫富!
妹子,我最喜欢看你用这种姿势玩手机啦! 菇凉,你这吹泡泡的技术到底跟谁学的?
2K曲面屏+双GTX1080,堪称“性能怪兽”! 最后的防线被攻破,但是有游戏可以玩吗?
CopyRight&2004年-年 < 游迅网 All Rights Reserved
备案编号:沪ICP备号-6西西软件下载最安全的下载网站、值得信赖的软件下载站!
→ 七日杀更新14.7版本后汉化乱码怎么办 游戏不能玩的解决方法
Alpha13.8简体中文汉化版
类型:第一人称射击大小:1.42G语言:中文 评分:7.1
七日杀更新14.7版本许多玩家都不能正常进行游戏了,在mod和汉化方面也出现了乱码等问题,今天小编就为大家收集一些七日杀更新14.7版本后弹出停止工作怎么办 游戏不能玩的解决方法七日杀更新14.7版本后弹出停止工作怎么办 游戏不能玩的解决方法:1、首先玩家可以先以管理员运行2、调整兼容模式3、steam玩家可以使用游戏库右键修复文件4、右键游戏,属性,游戏文件,检验游戏完整性5、A14.7正式发行更新内容处理纹理设置导致一些地形渲染错误的颜色映使奋斗目标变大改变车窗和钢圈的颜色黄铜水龙头添加不同的颜色建立粒子效应会导致性能下降玩家死亡动画不显示下降/删除所有关于死亡种植树木有自己完整的生命值和资源阴影显示3 d效果谁在不同的地方的外观不同EAC更新(修复代码签名***检查旧系统)不同的地方不同的倒影火的粒子是粉红色的修正服务器不在正常时间崩溃/不当关闭需求矿物往地下挖挖的更快现在的剪可以一剪双杀玩家可以升级方块,虽然物资不够补给箱玩家更容易拿到僵尸现在TMD可以一条腿走路玻璃窗可以碰碎了物品可以制作彩色的了休整游戏声音采矿帽和需要电池修复摩托车的那个bug修复了刷箱子的bug摩托车的名字不变做食物的时间不一致玩家不会没完没了的挖煤鹅卵石方块可以升级成混泥土方块在游戏掠夺/近距离传感器会变得更加困难多人死于显示为“player died”医学技能效果不显示小型机车在水面跳跃或震动的水花小型机车可以撞死人添加游戏启动器(目前只能从7dLauncher.exe手动运行时使用。)
每到年末年初,都想总结下年所发行的游戏,无论是续作,重制或是原创新作,都昭示了年是一个不平凡的游戏年在这一年巫师辐射横扫整个游戏界,蝙蝠侠回炉重制,最终幻想和生化危机系列开始冷饭大餐,连鬼泣都开始新一轮的蛋炒饭,这一年国产仙剑终于倒下,各种独立类小游戏百花齐放,总之开始了假期的同学萌还是游戏很多的游戏可玩,西西就为大家整理的年度比较好玩的,,寒假单机游戏大全,希望大家喜欢,能帮助玩家度过一个愉快的假...
10-20 / 60.58G
推荐理由:《巫师3:狂猎》将是三部曲系列的最后一作,故事将有宏大的最后结局,但并非《巫师》系列的最终作。本作采用
11-10 / 23.07G
推荐理由:辐射4中文版是《辐射Fallout》系列的最新作品,讲述的是虚构未来核战后被摧毁的世界里幸存者的历险故事,讴
08-13 / 153.4M
推荐理由:《我的世界Minecraft》世界一款风靡全球的沙盒游戏,游戏让每一个玩家在三维空间中自由地创造和破坏不同种类
12-17 / 578M
推荐理由:本年度最大的冷饭终于来了,SE的最终幻想系列炒冷饭作品再一次来袭,最终幻想6正式登陆PC平台!最终幻想6是
11-05 / 11.40G
推荐理由:《情热传说(Tales of Zestiria)》是一款由BANDAI NAMCO Studio 制作BANDAI NAMCO Entertainment发行的日式R
11-05 / 1.47G
推荐理由:龙翅汤在手机版本大获成功后发布了PC端,让玩家在电脑上也能玩到这款精品手机rpg动作游戏啦。简介:《龙翅汤
06-2106-2105-2305-1805-1805-1305-1205-1105-1105-11
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载& 关于正版Steam中文显示乱码的问题
查看: 4213|回复: 2
UID1268355主题阅读权限20帖子精华0积分186金钱2909 荣誉13 人气11 在线时间806 小时评议0
Lv.2游侠会员, 积分 186, 距离下一级还需 14 积分
帖子精华0积分186金钱2909 荣誉13 人气11 评议0
Steam选择语言 -& 中文 -& 进入游戏
所有文字都是 “-- --”
有解决方法否?
PS: Ali213汉化补丁真够快的,nice
UID7619668主题阅读权限20帖子精华0积分8金钱197 荣誉0 人气0 在线时间44 小时评议0
Lv.2游侠会员, 积分 8, 距离下一级还需 192 积分
帖子精华0积分8金钱197 荣誉0 人气0 评议0
亚洲区还锁着,所以你已中文显示进入游戏就这样
UID8544846主题阅读权限10帖子精华0积分2金钱44 荣誉0 人气0 在线时间6 小时评议0
Lv.1游侠新人, 积分 2, 距离下一级还需 3 积分
帖子精华0积分2金钱44 荣誉0 人气0 评议0
现在玩英文的怎么进去?进了几次都是乱码
Powered by近期公司调完银联,调支付宝,调完支付宝调微信.说实话微信的帮助文档确实是烂,而且有没有技术支持,害的我头发都掉了一桌.不说废话了,看代码.
首先登陆微信的公众平台(微信的服务号不是订阅号),然后选择微信支付--&开发设置,设置好支付回调URL和支付授权目录(授权目录最少精确到二级目录,比如你的需要使用微信支付的目录是:/sp/weixin/pay.do,那么对应的是:/sp/weixin/),设置好后编写代码.
对了,联调支付,一般都需要外网能够访问的URL地址,这里建议使用过ngrok软件,直接在本地联调,使用方式,下载一个ngrok,然后由命令行窗口进入ngrok解压的目录,然后执行:
ngrok.exe -config ngrok.cfg -subdomain weixinpay(可以改成自己喜欢的域名) 8080(可以改成自己喜欢的端口)
首先生成微信二维码(1):
* 生成微信二维码图片
* @throws Exception
public void gainQRCode() throws Exception {
String orderNu = request.getParameter("orderNu");
String describe = request.getParameter("describe");
String payCodeType = request.getParameter("payCodeType");
System.out.println("订单编号:"+"\n"+orderNu);
String price = request.getParameter("txnAmt");
if(StringUtils.isBlank(orderNu)){//账户充值,不用签名校验
orderNu = "WE"+StringUtil.getTableId(false);
String sign = request.getParameter("sign");
String signParam = "orderNu="+orderNu+"&payPrice="+
String newSign = DigestUtils.md5Hex(signParam.getBytes("utf-8"));
if(!newSign.equalsIgnoreCase(sign)){
Map param = new HashMap&&();
param.put("statu", "2");
JSONArray jsonProduct = JSONArray.fromObject(param);
System.out.println("json:
"+jsonProduct.toString());
response.getWriter().print(jsonProduct.toString());
System.out.println("没有转换的金额:"+"\n"+price);
BigDecimal bigDecimalPrice = new BigDecimal(price);
String pric = bigDecimalPrice.multiply(new BigDecimal(100)).toString().split("\\.")[0];
System.out.println("转换后的金额:"+"\n"+pric);
String filePostfix = "jpg";
// 二维码图片名称
String codePng = System.currentTimeMillis() + "." + fileP
// 保存路径
String appid = Config.APPID;
String mch_id = Config.MCHID;
String key = Config.KEY;
// 生成32位的随机字符串
String nonce_str = RandomStringUtil.generate().toUpperCase();
// 商户产品ID
User user = SessionUtil.getSysUserFormSession(request);
String product_id = "";
if(StringUtils.isNotBlank(payCodeType) && "1".equals(payCodeType)){//账户充值
product_id = "1_"+orderNu+"_"+"账户保证金充值"+"_"+pric+"_"+user.getUniversalid();
} else if (StringUtils.isNotBlank(payCodeType) && "2".equals(payCodeType)){//订单结算
product_id = "2_"+orderNu+"_"+describe+"_"+pric+"_"+user.getUniversalid();
50          //上面的可以不关注.关注下面的签名和发送的参数,54行开始
String time_stamp = System.currentTimeMillis()+"";
String sign = "";//这些参数可以去微信扫码的支付的文档看看具体是什么意思
String temp = "appid=" + appid + "&mch_id=" + mch_id + "&nonce_str=" + nonce_str + "&" + "product_id="
+ product_id + "&time_stamp=" + time_
String signTemp = temp + "&key=" +
System.out.println("二维码请求参数:"+"\n"+temp);
sign = Encrypt.e(signTemp).toUpperCase();
String contentUrl = "weixin://wxpay/bizpayurl?" + temp + "&sign=" +
String url = QRCODE_PATH + File.separator
+ File.separator + codeP
File f = new File(url);
if(!f.exists()){
f.mkdirs();
System.out.println("已生成二维码url");
QRImgCode.encode(contentUrl, "二维码", 400, 400, url);
System.out.println("二维码已经生成成功");
Map param = new HashMap&&();
param.put("statu", "1");
param.put("imgName", codePng);
System.out.println("返回参数封装成功");
JSONArray jsonProduct = JSONArray.fromObject(param);
System.out.println("json:
"+jsonProduct.toString());
response.getWriter().print(jsonProduct.toString());
} catch (Exception e) {
生成二维码(2):
* 无中间图片
* @param content
* @param width
* @param height
* @param destImagePath
public static void encode(String content,String name,int width, int height, String destImagePath) {
System.err.println("进入二维码方法");
BitMatrix bitMatrix = genBarcode(content, 190, 184);
System.out.println("生成二维码数据");
MatrixToImageWriter.writeToFile(bitMatrix, "jpg", new File(destImagePath));
System.out.println("二维码图片生成完成");
} catch (IOException e) {
e.printStackTrace();
} catch (WriterException e) {
e.printStackTrace();
PC端扫码后微信会去调用调用支付回调URL,接下来重要的步骤来了:(险些让我秃顶)
* 微信扫码之后的回调
public void weixinPay() {
System.out.println("微信支付扫码回调,手动发起统一下单支付");
InputStream inStream = this.request.getInputStream();
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
outSteam.close();
inStream.close();
String re = new String(outSteam.toByteArray(), "utf-8");
System.out.println("用户扫码后返回的参数: \n" + re);
19       //转xml 微信传输的是xml
Map map = parseXML(re);
21       //扫码后签名验证
String sign = gainValidateSign(map,false).toUpperCase();
if (!sign.equalsIgnoreCase((String)map.get("sign"))) {
System.out.println("扫码后生成的签名不正确");
}//这些是扫码后的验证
System.out.println("扫码后生成的签名正确,
继续进行后续操作");
String url = "https://api.mch./pay/unifiedorder";
String string = (String)map.get("product_id");
System.out.println("扫码的product_id参数:\n" + string);
String[] para = string.split("_");
//这里个方法是生成与支付订单的请求参数,看下面的方法,需要传输的参数可以去查看微信的帮助文档,虽然烂,但是这些还是有的.
StringEntity param = genProductArgs(para[0] + "_" + para[1], para[2], para[3]);
String result = sendPost(url, param);
System.out.println("发送请求得到结果===" + result);
Map resultMap = parseXML(result);
String signResult = gainSign(resultMap);
if (!signResult.equalsIgnoreCase((String)resultMap.get("sign"))) {
System.out.println("统一下单接口--&签名不正确");
if (StringUtils.isNotBlank(para[0]) && "1".equals(para[0])) {
RechargePrice r = rechargePriceServiceService.findByorderIdRecharge(para[1]);
if(r == null || r.getUniversalid() == null){
RechargePrice rp = new RechargePrice();
rp.setUserId(para[4]);
rp.setCreateDate(DateFormatUtil.strToDate(UtilDate.getDateFormatter()));
rp.setExplain("账户充值");
rp.setFlowAccountNum(StringUtil.getTableId(true));
BigDecimal bigDecimalPrice = new BigDecimal(para[3]);
double doubleValue = bigDecimalPrice.divide(new BigDecimal("100")).doubleValue();
rp.setPrice(doubleValue+"");
rp.setOrderCode(para[1]);
rp.setTransactionStat("2");
rp.setTransactionType("1");
rp.setPaySource("5");
this.rechargePriceServiceService.saveRechargePrice(rp);
ServletOutputStream outputStream = this.response.getOutputStream();
String return_code = (String)resultMap.get("return_code");
String result_code = (String)resultMap.get("result_code");
if (StringUtils.isNotBlank(return_code) && StringUtils.isNotBlank(result_code) && return_code.equalsIgnoreCase("SUCCESS") && result_code.equalsIgnoreCase("SUCCESS")) {
String xml = genPay(resultMap);//对于中文乱码主要是上面的那个预支付订单请求,只要上面请求OK,这个请求就可以不用转码
System.out.println("统一下单接口后,向微信发送支付其你去的xml"+"\n" + xml);
outputStream.write(xml.getBytes());
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
字符串转xml:
* 解析xml方法
@SuppressWarnings("rawtypes")
public Map&String, String& parseXML(String xml) {
Map&String, String& map = new LinkedHashMap&String, String&();
doc = DocumentHelper.parseText(xml);
Element rootElement = doc.getRootElement();
Iterator elementIterator = rootElement.elementIterator();
while (elementIterator.hasNext()) {
Element recordEle = (Element) elementIterator.next();
String name = recordEle.getName();
String textTrim = recordEle.getTextTrim();
map.put(name, textTrim);
} catch (DocumentException e) {
e.printStackTrace();
处理xml集合,返回签名:
* 处理xml字符串 返回签名
public String gainValidateSign(Map&String, String& map, boolean isUtf8)
StringBuffer sb = new StringBuffer();
Set&String& keySet = map.keySet();
List&String& list = new LinkedList&String&();
list.addAll(keySet);
Collections.sort(list);
for (String key : list) {
if (!key.equals("sign")) {
sb.append(key).append("=").append(map.get(key)).append("&");
sb.append("key=").append(Config.KEY);
String sign = "";
if(isUtf8){
sign = Encrypt.e(new String(sb.toString().getBytes(), "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
sign = Encrypt.e(sb.toString());
封装请求参数返回xml字符串:
* 把一个参数添加到 一个集合中,按字典顺序,这是为了后面生成 签名方便
* @param attach
* @param map
* @throws Exception
private StringEntity genProductArgs(String attach,String body,String price) throws Exception {
List&NameValuePair& packageParams = new LinkedList&NameValuePair&();
packageParams.add(new BasicNameValuePair("appid", Config.APPID));
packageParams.add(new BasicNameValuePair("attach", attach));
packageParams.add(new BasicNameValuePair("body", body));
packageParams.add(new BasicNameValuePair("mch_id", Config.MCHID));
packageParams.add(new BasicNameValuePair("nonce_str", RandomStringUtil.generate().toUpperCase()));
packageParams.add(new BasicNameValuePair("notify_url", ""));
packageParams.add(new BasicNameValuePair("out_trade_no", mon.utils.StringUtils.getRandomNumbersAndLetters(15).toUpperCase()));
packageParams.add(new BasicNameValuePair("spbill_create_ip", request.getRemoteAddr()));
packageParams.add(new BasicNameValuePair("total_fee", Integer.parseInt(price)+""));
packageParams.add(new BasicNameValuePair("trade_type", Config.trade_type));
// 调用genXml()方法获得xml格式的请求数据
String genXml =
StringEntity stringEntityXml = getStringEntityXml(packageParams);
return stringEntityX
} catch (Exception e) {
e.printStackTrace();
return null;
返回发送的xml数据:(解决中文乱码问题)
* 生成xml文档发送微信生成支付信息
* @param params
* @throws Exception
private StringEntity getStringEntityXml(List&NameValuePair& params) throws Exception {
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
sb2.append("&?xml version='1.0' encoding='UTF-8' standalone='yes' ?&&xml&");
for (int i = 0; i & params.size(); i++) {
// sb是用来计算签名的
sb.append(params.get(i).getName());
sb.append('=');
sb.append(params.get(i).getValue());
sb.append('&');
// sb2是用来做请求的xml参数
sb2.append("&" + params.get(i).getName() + "&");
sb2.append(params.get(i).getValue());
sb2.append("&/" + params.get(i).getName() + "&");
sb.append("key=");
sb.append(Config.KEY);
System.err.println("生成签名的参数:"+"\n"+sb.toString());
String packageSign = null;
// 生成签名--&签名和xml字符串都需要转成utf-8格式,中文就不会出现乱码
packageSign = DigestUtils.md5Hex(sb.toString().getBytes("utf-8")).toUpperCase();
packageSign = DigestUtils.md5Hex(sb.toString()).toUpperCase();
System.out.println("生成发送统一接口的签名:"+"\n"+packageSign);
sb2.append("&sign&&![CDATA[");
sb2.append(packageSign);
sb2.append("]]&&/sign&");
sb2.append("&/xml&");
System.err.println("生成发送统一接口的xml"+"\n"+sb2.toString());
StringEntity se = new StringEntity(sb2.toString(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
return null;
* 发送请求
* @throws UnsupportedEncodingException
public String sendPost(String url, StringEntity param) throws UnsupportedEncodingException {
String reslt = "";
CloseableHttpClient httpClient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(10000).setConnectTimeout(30000).build();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Content-Type", "text/xml");
httpPost.setEntity(param);
httpPost.setConfig(requestConfig);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
reslt = EntityUtils.toString(entity, "UTF-8");
} catch (ParseException | IOException e1) {
e1.printStackTrace();
//下面注释掉的直接忽略掉,贴上来主要想说,以前用这种方法中文乱码,而且用utf-8转换一下后直接报签名错误,把签名信息贴到微信的签名验证上面确实可以通过,真的是无语
System.out.println("进入发送统一下单支付方法");
PrintWriter out =
BufferedReader in =
String result = "";
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");
conn.setDoOutput(true);
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());
System.out.println("请求参数========" + param);
param = new String(param.getBytes(), "utf-8");
out.write(param);
out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = in.readLine()) != null)
result = result +
} catch (Exception e) {
e.printStackTrace();
if (out != null) {
out.close();
if (in != null)
in.close();
catch (IOException ex) {
ex.printStackTrace();
if (out != null) {
out.close();
if (in != null)
in.close();
catch (IOException ex) {
ex.printStackTrace();
return new String(result.getBytes(), "utf-8");
拼接微信支付信息参数:
* 发送支付信息参数
* @param param
public String genPay(Map&String, String& param) {
System.out.println("向微信发送支付请求的 参数--&"+"\n"+param.toString());
List&NameValuePair& packageParams = new LinkedList&NameValuePair&();
packageParams.add(new BasicNameValuePair("appid", param.get("appid")));
packageParams.add(new BasicNameValuePair("mch_id", param.get("mch_id")));
packageParams.add(new BasicNameValuePair("nonce_str", RandomStringUtil.generate().toUpperCase()));
packageParams.add(new BasicNameValuePair("prepay_id", param.get("prepay_id")));
packageParams.add(new BasicNameValuePair("result_code", param.get("result_code")));
packageParams.add(new BasicNameValuePair("return_code", param.get("return_code")));
if ("FAIL".equalsIgnoreCase(param.get("result_code"))) {
packageParams.add(new BasicNameValuePair("return_code", param.get("result_code")));
if(StringUtils.isBlank(param.get("err_code_des"))){
packageParams.add(new BasicNameValuePair("err_code_des", "订单时效"));
packageParams.add(new BasicNameValuePair("err_code_des", param.get("err_code_des")));
String genXml = null;
System.out.println("向微信发送支付请求的xml"+"\n"+packageParams.toString());
genXml = genXml(packageParams);
} catch (Exception e) {
e.printStackTrace();
return genX
生成微信支付xml参数:
* 生成xml文档发送个给微信支付
* @param params
* @throws Exception
private String genXml(List&NameValuePair& params) throws Exception {
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
sb2.append("&?xml version='1.0' encoding='UTF-8' standalone='yes' ?&&xml&");
for (int i = 0; i & params.size(); i++) {
// sb是用来计算签名的
sb.append(params.get(i).getName());
sb.append('=');
sb.append(params.get(i).getValue());
sb.append('&');
// sb2是用来做请求的xml参数
sb2.append("&" + params.get(i).getName() + "&");
sb2.append(params.get(i).getValue());
sb2.append("&/" + params.get(i).getName() + "&");
sb.append("key=");
sb.append(Config.KEY);
System.err.println("生成签名的参数:"+"\n"+sb.toString());
String packageSign = null;
// 生成签名
packageSign = DigestUtils.md5Hex(sb.toString()).toUpperCase();
System.out.println("生成发送统一接口的签名:"+"\n"+packageSign);
sb2.append("&sign&&![CDATA[");
sb2.append(packageSign);
sb2.append("]]&&/sign&");
sb2.append("&/xml&");
System.err.println("生成发送统一接口的xml"+"\n"+sb2.toString());
return sb2.toString();
} catch (Exception e) {
e.printStackTrace();
return "";
支付成功后:
* 微信扫码支付成功后的回调的接口
* @throws IOException
public void weiXinnotify() throws IOException{
InputStream inStream = this.request.getInputStream();
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
outSteam.close();
inStream.close();
String re = new String(outSteam.toByteArray(), "utf-8");
System.out.println("用户扫码后支付返回的参数: \n" + re);
Map parseXML = parseXML(re);
System.out.println("转成xml后的map:\n" + parseXML);
String string = (String)parseXML.get("attach");
//处理完逻辑后记得向微信发送消息,不然微信会隔一段时间会访问
PrintWriter writer = response.getWriter();
writer.print(re);
writer.close();
最后,对于微信的帮助文档,是我目前见过最烂的了,前面联调支付宝和银联都没这样.哎不吐槽了,
本博客是根据:
/zyw-205520/p/5495115.html这篇博客,写的很好,他自己写了一个开源项目,
以及和IT好的帮助下完成的,
如果有好的博客可以推荐给我,大家共同学习,谢谢!!
阅读(...) 评论()

参考资料

 

随机推荐