• 在JSP中读文件及时间字符串转日期格式中踩的坑


    1、按行读取文件内容时,中文乱码问题:

    ①出错的代码:

    FileReader fr = new FileReader(linefile);  //字符输入流

    BufferedReader br = new BufferedReader(fr);  //使文件可按行读取并具有缓冲功能

    ②出错原因:

    直接使用FileReader读取一个包含中文字符的文件,将字符输入流放到BufferedReader中,通过BufferedReader读取出来的中文字符串乱码. 文件流读取时使用的编码方式和文件本身编码方式不同,造成读取出来文件乱码.

    ③解决办法:

    读取文件时指定读取文件的编码方式. 使用FileInputStream类读取文件流,BufferedReader构造方法只能接收字符流,利用InputStreamReader将字节流转化为字符流,同时指定文件流的编码方式,将字符流放到 BufferedReader中,进行操作,中文读取乱码问题解决.

    ④修改后的代码:

    InputStreamReader isr = new InputStreamReader(new FileInputStream(linefile), "UTF-8");

    BufferedReader br = new BufferedReader(isr);  //使文件可按行读取并具有缓冲功能

    2、数据库datetime格式出错一直存不进去

    ①一开始以为是要转换成日期格式做了以下尝试,遇到的问题:

    Type mismatch: cannot convert from java.util.Date to java.sql.Date

    文档中同时引用了java.util.*和java.sql.*的头文件。而这两个文件中都包含了Date;

    SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    java.util.Date date = sdf.parse(需要转的字符串);

    java.sql.Date dateTime = new java.sql.Date(date.getTime());

    ②发现改了格式之后,发现sql语句依旧无法执行:

    出现Unparseable date: "2020‐01‐07 16:24:47"的错误

    解析不了此格式:把这个字符串复制到别的文档下查看,发现是‘-’和'‐'的问题

    ③一般来说可以直接存成String格式的:pstmt.setString(2,"2020-01-07 16:24:47");

    也可以用pstmt.setDate方法,这里存的Date格式是java.sql.Date

    3、以下代码无法执行:提示找不到msg

    <script language="javascript">
    window.alert("<%=msg %>");
    window.document.location.href="index.jsp";
    </script>

    解决方法:在文件开头就定义(具体原因没有探究,可能是全局和局部变量原因)

    <%
    String msg = "添加失败,单击确定跳转图书列表页!";
    %>

  • 相关阅读:
    SQL server 日期格式转换style 对应码
    postman的使用方法详解!最全面的教程
    港澳台身份证小结
    使用设置自定义对话框的大小,位置,样式以及设置在安卓桌面上弹出对话框
    android自定义Activity窗口大小(theme运用)
    C#调用RabbitMQ实现消息队列
    C# http请求带请求头部分
    Android如何屏蔽home键和recent键
    针对jquery的优化方法,你知道几条
    试图从目录中执行 CGI、ISAPI 或其他可执行程序
  • 原文地址:https://www.cnblogs.com/XxZzYy/p/12630996.html
Copyright © 2020-2023  润新知