`

中文化和国际化问题权威解析之四:Java中文化和国际化攻略

 
阅读更多

一般攻略

既然在 Java 内部是直接使用 Unicode 表示一切字符的,表达中文自然不成问题。因此所谓的中文问题并不是由 Java 本身引起的。而是因为对 Java Unicode 理解不透或应用不当引起的。下面列出的原则,是解决一切中文问题的总纲:

  1. Java 内部,正确使用 Unicode 标准。对于中文来说,每个汉字使用一个 char 表示。
  2. 在所有的输入输出环节,指明正确的编码方式,进行正确的字符到字节,或字节到字符的转换。
  3. 如果输入源或输出目标直接支持,尽可能直接使用 Unicode 进行输入输出。例如, Oracle 数据库直接支持 UTF-8 的文本数据。使用 UTF-8 操作 Oracle ,可自动兼容所有的语言文字;反之,使用 ISO-8859-1 或者 ASCII 去操作 Oracle ,只能兼容欧美单字节的文字。
  4. 不要依赖平台默认的字符编码方式。例如,中文 Windows 下,默认编码为 GBK ,英文 Linux 下,默认编码为 ISO-8859-1 。依赖平台默认值意味着同样的程序在不同的平台上可能产生不同的结果。

 

遗留代码攻略

对于第三方的代码,或是以前遗留的代码,如果没有留有指定字符编码的接口,那么这些代码很可能使用默认的系统编码,或是使用固定的字符编码。这样很容易造成上述的各种中文乱码的问题。对于这些代码,我们可以做一个适配器,将它们返回的字符串转换成适当的 Unicode 内码。

例如,我们的数据库错误地使用了 ASCII 编码存储文本,也就是说从数据库返回的中文字,实际上被 成了两个欧洲字符。但是数据库中已经保存了大量数据,想要把它改成正确的 UTF-8 存储格式并不容易。作为权宜之计,我们可以在数据访问层做一个适配器,将欧洲字符重新组合,变成真正的 Unicode 中文。

 

  1. public class DBAdapter{
  2. private DBObjectobj;
  3. //重新组合字节,转变成真正的unicode字符串
  4. public StringgetString(){
  5. Stringstr=obj.getString();
  6. try {
  7. return new String(str.getBytes( "8859_1" ), "GBK" );
  8. } catch (UnsupportedEncodingExceptione){
  9. return str; //不会执行到此处
  10. }
  11. }
  12. //将unicode字符串中的中文拆成两个欧洲字符,以便数据库保存
  13. public void setString(Stringstr){
  14. try {
  15. str= new String(str.getBytes( "GBK" ), "8859_1" );
  16. } catch (UnsupportedEncodingExceptione){
  17. }
  18. obj.setString(str);
  19. }
  20. }

WEB应用攻略

除了 Unicode 以外,无论何种本地字符集,都不能代表所有字符。这将导致一些问题:

  1. 难以在一屏幕显示多种语言的文字。
  2. 解码用户表单困难。

我们知道浏览器是根据当前页面的 content type 中指定的字符编码来发送用户的表单输入的。假设当前页面的 content type text/html; charset=GBK ,则当用户按下 submit 按钮提交表单时,浏览器自动将用户输入的字符以 GBK 方式编码并发回到服务器端。假设页面的 content type text/html; charset=BIG5 ,则用户的输入将以 BIG5 繁体中文的编码发送。但是,如果用户输入的字符超过了这个编码字符集的范围,会怎样呢?我们可以写一个简单的 JSP 做试验:

 

  1. < %@page contentType = "text/html;charset=BIG5" % >
  2. < html >
  3. < head >
  4. < title > Formtest </ title >
  5. < meta http-equiv = "Content-Type" content = "text/html;charset=BIG5" />
  6. </ head >
  7. < body >
  8. < p > CharacterEncoding: < %=request.getCharacterEncoding()% > </ p >
  9. < %
  10. String mytext = request .getParameter("mytext");
  11. if(mytext!=null){
  12. out.println(" < p > Valueofparameter < code > mytext < code > :");
  13. out.println(" < table border = '1' > ");
  14. out.println(" < tr > < th > Display </ th > < th > Unicode </ th > < th > BIG5code </ tr > ");
  15. for(int i = 0 ;i < mytext.length ();i++){
  16. char ch = mytext .charAt(i);
  17. byte[] big5bytes = Character .toString(ch).getBytes("BIG5");
  18. int big5code = 0 ;
  19. out.print(" < tr > < td > "+ch+" </ td > < td > ");
  20. out.print(Integer.toHexString(0xFFFF&mytext.charAt(i))+" </ td > < td > ");
  21. for(int j = big5bytes .length-1;j > =0;j--){
  22. big5code =(big5code < < 8 )+(0xFF&big5bytes[j]);
  23. }
  24. out.print(Integer.toHexString(big5code)+" </ td > </ tr > ");
  25. }
  26. out.println(" </ table > </ p > ");
  27. }else{
  28. mytext = "" ;
  29. }
  30. % >
  31. < form action = "<%=request.getRequestURI()%>" method = "GET" >
  32. < textarea name = "mytext" > < %=mytext% > </ textarea > < br >
  33. < input type = "submit" />
  34. </ form >
  35. </ body >
  36. </ html >

上述页面是用

BIG5 显示的。在文本框中打入简体中文字 我爱 ,然后 submit 。在结果页面中,我们可以看到 被转换成了 BIG5 编码 DAA7 ,而简体中文 BIG5 中没有对应的编码,因此被浏览器直接以 &#29233; 的形式返回。其中 29233 是简体中文 的十进制 Unicode 码。

可见浏览器会把超出当前字符集的字符,以实体编码的形式(如 &#29233; ),直接返回给服务器端。 Java servlet 并不会自动处理这样的输入值,这给进一步处理字符串造成了困难。

为什么不直接使用 UTF-8 作为 WEB 页面的编码呢?这样不仅可以让全世界的文字同时显示在同一屏幕上(只要安装了相应的字体),也大大简化了解码用户表单的工作(不需要处理 &#29233; 这样的实体编码)。但使用 UTF-8 也会带来一些微小的不便:

  1. 一个中文需要用三个字节表示,稍微增加了网页的大小。但多数网页中的中文字的数量是非常用限的,因而字节数的增加也是非常有限的。例如 Alibaba 中文站的首页面,改成 UTF-8 以后,比 GBK 编码的页面仅仅增加了 1413 个字节。
  2. 使用不支持 UTF-8 的编辑器查看页面将看到 乱码 。但我们可以使用支持 UTF-8 的文本编辑器来查看页面的 HTML 源代码。此外,使用 UTF-8 编码 WEB 页面 并非 意味着用来生成 WEB 页面的模板也必须使用 UTF-8 。仍然可以使用 GBK 来书写 WEB 页面模板。

根据上面的讨论,我们得到如下最佳攻略:

1. 使用 UTF-8 作为 WEB 页面的编码。使用如下语句设置 content type

  1. response.setContentType( "text/html;charset=UTF-8" );

并且在

WEB 页的 HTML 中设置标记:
  1. < meta http-equiv = "Content-Type" content = "text/html;charset=UTF-8" />

对于

Turbine ,可在其配置文件中设置:
  1. locale. default .charset=UTF- 8

Turbine

将根据上述设置,自动为你设置 content type

2. 仍然可以使用 GBK 来书写页面模板。对于以 Velocity 为模板系统的 Turbine ,需要在 Turbine 的配置文件中设置:

  1. services.VelocityService.input.encoding=GBK

模板的内容将以

GBK 的方式转换成 Unicode ,最后以 UTF-8 的方式输出到用户浏览器。

3. 使用 UTF-8 解码用户输入的表单。有几种方式可以达到这个目的:

    • 设置服务器特定的配置文件。对于 Resin Server ,需要在其配置文件 resin.conf 中设置: <web-app character-encoding="UTF-8"/> ;对于 Weblogic Server ,需要设置 WEB-INF/weblogic.xml 配置文件,具体方法参见 BEA文档

o 创建一个 javax.servlet.Filter ,在 servlet 被调用前,调用 request.setCharacterEncoding 方法:

  1. import java.io.IOException;
  2. import javax.servlet.Filter;
  3. import javax.servlet.FilterChain;
  4. import javax.servlet.FilterConfig;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.ServletRequest;
  7. import javax.servlet.ServletResponse;
  8. public class SetCharacterEncodingFilter implements Filter{
  9. public void init(FilterConfigconfig) throws ServletException{
  10. }
  11. public void doFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)
  12. throws IOException,ServletException{
  13. request.setCharacterEncoding( "UTF-8" );
  14. chain.doFilter(request,response);
  15. }
  16. public void destroy(){
  17. }
  18. }

o

servlet 代码中调用:

  1. request.setCharacterEncoding( "UTF-8" );
Java Mail
攻略

WEB 应用完全类似,使用 Java Mail API 同样需要设置正确的 content type 和字符编码。

  1. import javax.mail.internet.ContentType;
  2. import javax.mail.internet.MimeUtility;
  3. import javax.mail.Part;
  4. ...
  5. Partpart;
  6. ContentTypecontentType;
  7. ...
  8. contentType= new ContentType( "text/plain" ); //或"text/html"
  9. contentType.setParameter( "charset" ,MimeUtility.mimeCharset( "UTF-8" ));
  10. part.setContent( "...textorHTMLcontent..." ,contentType.toString());

值得注意的是,

RFC 822 标准规定, e-mail header 不能包含非 ASCII 编码。也就是说, e-mail 的主题( subject )不能包含中文。那我们怎样在 e-mail subject 中发送中文呢?还好,另一个标准 RFC 2047 定义了如何将非 ASCII header 转换成 ASCII 的规则。我们不需要了解这个规则的细节,只要调用 javax.mail.internet.MimeUtility 就可以完成转换了:
  1. import javax.mail.internet.MimeMessage;
  2. import javax.mail.internet.MimeUtility;
  3. ...
  4. MimeMessagemessage;
  5. ...
  6. message.setSubject(MimeUtility.encodeText( "...e-mail的主题..." ,
  7. MimeUtility.mimeCharset( "UTF-8" ), null ));

大结论

完成同一个目标,往往有许多种途径,总有一些途径是比较好的,也有一些是不太好的。那些不太好的途径,虽然也能完成任务,却会导致很多潜在的问题。这些问题可能要在一定的条件下才能表现出来。例如,我们公司的 Java 程序以及 Oracle 数据库,从一开始就没有正确使用 Unicode 来存取文本,结果导致了一系列的问题。而要修正这样的问题,代价是比较大的。

怎样的途径是好的呢?一般来说,符合业界标准的,或是市场标准的实现途径,是我们首选的途径。所以我们设计任何程序之前,一定要充分了解相应的标准,不能不求甚解,完成任务了事。

Unicode 标准及相关技术,不仅是解决中文问题的关键,而且是以统一的方法解决国际所有语言文字的问题的最好途径。使用好这些标准,必将为我们公司的产品的进一步向国际化发展,打好坚实的基础。

 

分享到:
评论

相关推荐

    Java毕业设计-ssm-jsp-高校疫情防控出入信息管理系统(源码+sql脚本+32页零基础部署图文详解+29页论文+环境工具+教程+视频+模板).zip

    资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。

    qt5-qtlocation-doc-5.9.7-1.el7.x64-86.rpm.tar.gz

    1、文件内容:qt5-qtlocation-doc-5.9.7-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qtlocation-doc-5.9.7-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    【数据驱动】基于matlab永磁同步电机PMSM和柔性负载PMSM数据驱动控制【含Matlab源码 11154期】.zip

    Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    Java毕业设计-ssm-jsp-中小企业人力资源管理系统(源码+sql脚本+32页零基础部署图文详解+31页论文+环境工具+教程+视频+模板).zip

    资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。

    rhdb-utils-9.2.0-5.el7.x64-86.rpm.tar.gz

    1、文件内容:rhdb-utils-9.2.0-5.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/rhdb-utils-9.2.0-5.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    qt5-qttools-5.9.7-1.el7.x64-86.rpm.tar.gz

    1、文件内容:qt5-qttools-5.9.7-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qttools-5.9.7-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    Java毕业设计-ssm-vue-学院学生论坛(源码+sql脚本+32页零基础部署图文详解+33页论文+环境工具+教程+视频+模板).zip

    资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。VUE框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。

    细粒度原型蒸馏用于小样本目标检测.zip

    细粒度原型蒸馏用于小样本目标检测,含有完整的代码和论文

    Involution.zip

    Involution,含有完整的代码和论文

    rngom-javadoc-201103-0.8.20120119svn.el7.x64-86.rpm.tar.gz

    1、文件内容:rngom-javadoc-201103-0.8.20120119svn.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/rngom-javadoc-201103-0.8.20120119svn.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    基于NSGAII算法的七次非均匀B样条轨迹规划-时间能量冲击优化及通用关节值应用,matlab-B样条轨迹规划-1 七次非均匀B样条轨迹规划, 基于NSGAII的时间-能量-冲击最优 上自己的关节

    基于NSGAII算法的七次非均匀B样条轨迹规划——时间能量冲击优化及通用关节值应用,matlab-B样条轨迹规划-1 七次非均匀B样条轨迹规划, 基于NSGAII的时间-能量-冲击最优。 上自己的关节值和时间就能用,简单好用, ,核心关键词:matlab; 七次非均匀B样条轨迹规划; NSGAII; 时间-能量-冲击最优; 关节值; 简单好用。,"MATLAB实现七次非均匀B样条轨迹规划算法:时间-能量-冲击最优"

    Java毕业设计-ssm-jsp-购物商城系统(源码+sql脚本+32页零基础部署图文详解+35页论文+环境工具+教程+视频+模板).zip

    资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。

    基于专家混合架构的高级视觉-语言模型DeepSeek-VL2及其多模态理解应用

    内容概要:DeepSeek-VL2是一款基于专家混合架构的大型视觉-语言模型,它在图像识别和自然语言处理方面显著改进,采用了动态拼贴编码策略以及多头潜在注意力机制。其优势在于高效的训练和推理性能,尤其擅长高分辨率图片和复杂视觉-文本任务的处理,涵盖光学字符识别、表格解析、图文理解和视觉问答等多个应用场景。文中提到的三种不同规模的变体,参数量分别为1.0亿、2.8亿和4.5亿,均展示了强大的竞争力。研究团队还在GitHub发布了开源代码和预训练模型以供公众下载和进一步研究。此外,文中介绍了模型使用的多种高质量数据集及细致的数据增强方法,并讨论了一些未来的发展方向。 适合人群:计算机视觉和自然语言处理领域的研究人员,AI系统开发从业者,机器学习爱好者。 使用场景及目标:1.用于高分辨率图像处理;2.提高视觉与文本融合任务的效果;3.支持跨领域(如教育、医学等)的具体应用。 其他说明:本文强调的技术创新点包括但不限于动态分割技术,该技术解决了图像大小变化的问题;还有多层注意力压缩机制提高了推断效率等问题。同时论文指出了当前版本存在的局限性比如对话上下文窗口小、模糊物体识别困难等问题并展望了后续优化路径。

    西门子Smart 200系列PLC与触摸屏双轴卷取分切机程序,精准控制张力与版型,附完整注释与设备图纸,双轴卷取分切机程序,PLC和触摸屏使用西门子smart200系列 前后卷取双轴张力控制计算

    西门子Smart 200系列PLC与触摸屏双轴卷取分切机程序,精准控制张力与版型,附完整注释与设备图纸,双轴卷取分切机程序,PLC和触摸屏使用西门子smart200系列。 前后卷取双轴张力控制计算。 利用变频器模拟量输出控制张力。 卷取版型较好。 内部张力梯度算法理解后可用于恒张力卷取设备。 程序有完整注释,完整的设备图纸,方便理解阅读。 只包含PLC和触摸屏程序以及设备电路图 ,核心关键词:双轴卷取分切机程序; PLC; 触摸屏; 西门子smart200系列; 前后卷取双轴张力控制计算; 变频器模拟量输出控制张力; 卷取版型; 内部张力梯度算法; 程序注释; 设备图纸; 设备电路图。,西门子Smart200系列双轴卷取分切机程序:张力控制与变频模拟化操作指南

    qt5-qtsensors-5.9.7-1.el7.x64-86.rpm.tar.gz

    1、文件内容:qt5-qtsensors-5.9.7-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qtsensors-5.9.7-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    webapiapi开发apikaifa这个是apiwebappi

    webapiapi开发apikaifa这个是apiwebappi

    MATLAB声发射b值或ib值动态计算源码资料包:可调窗口参数滑动计算功能,MATLAB滑动计算声发射b值或ib值m文件源码资料包(动态最值或全局最值,计算窗口、滑动窗口等参数可调) ,核心关键词:

    MATLAB声发射b值或ib值动态计算源码资料包:可调窗口参数滑动计算功能,MATLAB滑动计算声发射b值或ib值m文件源码资料包(动态最值或全局最值,计算窗口、滑动窗口等参数可调) ,核心关键词:MATLAB; 声发射; b值或ib值; 滑动计算; 动态最值; 全局最值; 计算窗口; 滑动窗口; 参数可调; m文件源码; 资料包,MATLAB声发射B值/IB值计算源码包(支持滑动窗口与动态/全局最值)

    Java毕业设计-ssm-jsp-电脑配件销售系统(源码+sql脚本+32页零基础部署图文详解+34页论文+环境工具+教程+视频+模板).zip

    资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。

    不同平台本地部署DeepSeek的人工智能部署指南

    内容概要:本文详细介绍了在Windows、Linux以及macOS三种不同操作平台上利用两种主要方法(Ollama和LM Studio)来部署深度学习模型DeepSeek的具体步骤。针对每个系统,分别列出了必要的准备工作,像是下载和安装必需的程序组件或是执行特定命令,还提供了通过不同工具加载、运行DeepSeek的方式指导,包括模型下载来源的选择及其指令的用法等。无论是通过Ollama还是LM Studio部署,在所有平台上的流程都覆盖了详细的环境搭建及模型启动指南,并对可能出现的一些注意事项进行了简述,为初次尝试的用户提供全面的支持。 适用人群:适合需要将AI模型应用于本地环境中,尤其对于想要了解如何快速上手DeepSeek模型的实际应用的技术爱好者或开发者。 使用场景及目标:帮助有兴趣使用DeepSeek模型开展科研、项目或者个人实验的用户能够顺利地完成在自己设备上从零起步的部署任务;使用户掌握在各种操作系统环境中部署大型语言模型的基本方法,提高工作效率,降低入门门槛。 其他说明:文中提供的具体命令可能随时间和官方更新而有所变化,请参照官方最新发布资料。此外,对于硬盘容量等硬件条件也给出了明确的需求指引,保障了部署的成功率。

    西门子S7-威纶通触摸屏一拖三恒压供水全套图纸程序设计方案,一拖三恒压供水全套图纸程序 威纶通触摸屏 西门子s7- ,核心关键词:一拖三恒压供水; 全套图纸程序; 威纶通触摸屏; 西门子s7

    西门子S7-威纶通触摸屏一拖三恒压供水全套图纸程序设计方案,一拖三恒压供水全套图纸程序 威纶通触摸屏 西门子s7- ,核心关键词:一拖三恒压供水; 全套图纸程序; 威纶通触摸屏; 西门子s7-。,一拖三恒压供水方案全解:威纶通屏控西门子s7-程序图纸集

Global site tag (gtag.js) - Google Analytics