1

Тема: Проблема з кирилицею

Всім привіт, проблема у мене з кирилицею. Коли додаю людей то в мене якісь знаки замість нормальних букв.

Ось приклад
http://rgho.st/8Bj4MR6Qc

Формат БД в MYSQL
http://rgho.st/8dJ9VDg8r

Незнаю як виправити дане чудо. Хто з таким стикався буду вдячний за допомогу. Дякую

Додаю через сторінку.
У мене нижче на сторінці є посилання "Добивати нового гостя" потім переходжу на сторінку з додаванням. Після цього загружаеться сторінка що користувач доданий але кирилица з непонятними знаками.

2

Re: Проблема з кирилицею

Для того, щоб отримати відповідь на ваше питання, вам треба:
- подивитися, в якому кодуванні користувачі вводять інформацію;
- в якому кодуванні їх обробляє скрипт;
- в якому кодуванні скрипт пхає їх в БД (швидше за все, це те саме, що й попереднє, але не факт);
- і найголовніше - в якому кодуванні їх відображає ваш засіб перегляду БД, засіб перегляду користувацької інформації (браузер)?, засіб зневадження (чи логування) у скрипті. Не довіряйте нікому, сучасні інструменти намагаються бути "інтелектуальними" і відтак самі підбирають кодування, що подекуди призводить до складних помилок.
Ну і, звісно, проблема, зрештою, буде десь у коді, а на питання по коду без коду відповідають лише телепати.

Подякували: leofun011

3 Востаннє редагувалося ZakyskA1 (25.03.2018 12:31:24)

Re: Проблема з кирилицею

Вибачаюсь, що не скинув код незамітив.
Зараз скину код.
Все відображається в браузері.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>

<!DOCTYPE html>
<html lang="UK">
<head>
    <meta http-equiv="Content-Type\" content="text/html; charset=UTF-8\">
    <title>Роботаа</title>

    <style>
    body {
        font-family: sans-serif;
        }
        tr:first-child{
            font-weight: bold;
            background-color: #C6C9C4;
            font-size: 13px;
            
            
        }
         a { 
    text-decoration: none; 
   } 
       
    </style>

</head>


<body>
     <h2>Список Гостей</h2> 
    <table>
        <tr>
            <td>Прізвище</td><td>Ім'я</td><td>Тип номеру</td><td>Номер кімнати</td><td>Додаткові послуги</td><td>Типи витрат</td><td>Номер телефону</td><td>Тип Оплати</td><td>Тип картки</td><td>Номер картки</td><td>Сума оплати</td><td>Дата</td><td>Змінити дані</td><td>Видалити</td> 
        </tr>
        <c:forEach items="${guests}" var="guests">
            <tr>
            <td>${guests.surname}</td>
            <td>${guests.name}</td>
            <td>${guests.type_rooms}</td>
            <td>${guests.number_room}</td>
            <td>${guests.additional_Service}</td>
            <td>${guests.spending_Types}</td>
            <td>${guests.number_phone}</td>
            <td>${guests.payment}</td>
            <td>${guests.type_cards}</td>
            <td>${guests.number_cards}</td>
            <td>${guests.amount_payment}</td>
            <td>${guests.date}</td>
            <td><a href="<c:url value='/edit-${guests.id}-guests' />">Редагувати</a></td>
            <td><a href="<c:url value='/delete-${guests.id}-guests' />">Видалити</a></td>
            </tr>
        </c:forEach>
    </table>
    <br/>
    <a href="<c:url value='/new' />">Додати нового гостя</a>
</body>
</html>

4 Востаннє редагувалося ZakyskA1 (25.03.2018 12:32:49)

Re: Проблема з кирилицею

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>

<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Реєстрація Гостей</title>

<style>

    .error {
        color: #ff0000;
    }
    body {
        font-family: sans-serif;}
    a{
        text-decoration: none;}
</style>

</head>

<body>

     <h2>Реєстрація Форма</h2>
 
    <form:form method="POST" modelAttribute="guests">
        <form:input type="hidden" path="id" id="id"/>
        <table>
            <tr>
                <td><label for="surname">Прізвище: </label> </td>
                <td><form:input path="surname" id="surname"/></td>
                <td><form:errors path="surname" cssClass="error"/></td>
            </tr>
        
        <tr>
                <td><label for="name">Ім'я: </label> </td>
                <td><form:input path="name" id="name"/></td>
                <td><form:errors path="name" cssClass="error"/></td>
            </tr>
            <tr>
                <td><label for="type_rooms">Тип кімнат: </label> </td>
                <td><form:input path="type_rooms" id="type_rooms"/></td>
                <td><form:errors path="type_rooms" cssClass="error"/></td>
            </tr>
            
            <tr>
                <td><label for="number_room">Номер кімнати: </label> </td>
                <td><form:input path="number_room" id="number_room"/></td>
                <td><form:errors path="number_room" cssClass="error"/></td>
            </tr>
    
            <tr>
                <td><label for="additional_Service">Додаткові послуги: </label> </td>
                <td><form:input path="additional_Service" id="additional_Service"/></td>
                <td><form:errors path="additional_Service" cssClass="error"/></td>
            </tr>
    
            <tr>
                <td><label for="spending_Types">Типи витрат: </label> </td>
                <td><form:input path="spending_Types" id="spending_Types"/></td>
                <td><form:errors path="spending_Types" cssClass="error"/></td>
            </tr>
            <tr>
                <td><label for="number_phone">Номер телефону: </label> </td>
                <td><form:input path="number_phone" id="number_phone"/></td>
                <td><form:errors path="number_phone" cssClass="error"/></td>
            </tr>
            <tr>
                <td><label for="payment">Тип Оплати: </label> </td>
                <td><form:input path="payment" id="payment"/></td>
                <td><form:errors path="payment" cssClass="error"/></td>
            </tr>
            <tr>
                <td><label for="type_cards">Тип картки: </label> </td>
                <td><form:input path="type_cards" id="type_cards"/></td>
                <td><form:errors path="type_cards" cssClass="error"/></td>
            </tr>
            <tr>
                <td><label for="number_cards">Номер картки: </label> </td>
                <td><form:input path="number_cards" id="number_cards"/></td>
                <td><form:errors path="number_cards" cssClass="error"/></td>
            </tr>
            <tr>
                <td><label for="amount_payment">Сума до оплати: </label> </td>
                <td><form:input path="amount_payment" id="amount_payment"/></td>
                <td><form:errors path="amount_payment" cssClass="error"/></td>
            </tr>
            <tr>
                <td><label for="date">Дата реєстрації: </label> </td>
                <td><form:input path="date" id="date"/></td>
                <td><form:errors path="date" cssClass="error"/></td>
            </tr>
    
            <tr>
                <td colspan="3">
                    <c:choose>
                        <c:when test="${edit}">
                            <input type="submit" value="Update"/>
                        </c:when>
                        <c:otherwise >
                            <input type="submit" value="Реєстрація"/>
                        </c:otherwise>
                    </c:choose>
                </td>
            </tr>
        </table>
    </form:form>
    <br/>
    <br/>
    Повернутися до <a href="<c:url value='/list' />">Списку з гостями</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Сторінка підтвердження реєстрації</title>

<style>

    body {
        font-family: sans-serif;}
    a{
        text-decoration: none;}
</style>
</head>
<body>
    message : ${success}
    <br/>
    <br/>
     Повернутися до <a href="<c:url value='/list' />">Списку всіх Гостей</a>
    
</body>

</html>

5

Re: Проблема з кирилицею

http://replace.org.ua/post/113975/#p113975
Ось в цьому пості є ще коди від мого проекту.

6

Re: Проблема з кирилицею

Спробуйте дописати в URL до БД, щось по типу цього:
jdbc:mysql://host:port/name_db?useUnicode=true&characterEncoding=utf-8

7

Re: Проблема з кирилицею

jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/websystique?useUnicode=true&characterEncoding=UTF-8
jdbc.username = root
jdbc.password = admin
hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.show_sql = true
hibernate.format_sql = true

Не допомогло :(

8

Re: Проблема з кирилицею

В мене є ще декілька файлів можливо в них щось.

HibernateConfiguration

package com.honchar.springmvc.configuration;

import java.util.Properties;
import javax.sql.DataSource;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableTransactionManagement
@ComponentScan({ "com.honchar.springmvc.configuration" })
@PropertySource(value = { "classpath:application.properties" })
public class HibernateConfiguration {

    @Autowired
    private Environment environment;

    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan(new String[] { "com.honchar.springmvc.model" });
        sessionFactory.setHibernateProperties(hibernateProperties());
        return sessionFactory;
     }
    
    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
        dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
        dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
        dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
        return dataSource;
    }
    
    private Properties hibernateProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
        properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
        properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql"));
        return properties;        
    }
    
    @Bean
    @Autowired
    public HibernateTransactionManager transactionManager(SessionFactory s) {
       HibernateTransactionManager txManager = new HibernateTransactionManager();
       txManager.setSessionFactory(s);
       return txManager;
    }
}

AppConfig

package com.honchar.springmvc.configuration;

import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.honchar.springmvc")
public class AppConfig {
    
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }
    
    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasename("messages");
        return messageSource;
    }
}

appinitializer

package com.honchar.springmvc.configuration;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class AppInitializer implements WebApplicationInitializer {

    public void onStartup(ServletContext container) throws ServletException {

        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(AppConfig.class);
        ctx.setServletContext(container);

        ServletRegistration.Dynamic servlet = container.addServlet(
                "dispatcher", new DispatcherServlet(ctx));

        servlet.setLoadOnStartup(1);
        servlet.addMapping("/");
    }

}

9

Re: Проблема з кирилицею

Ну, тоді спробуйте додати фільтр: CharacterEncodingFilter

10

Re: Проблема з кирилицею

До чого саме. Бо я вже з цим всым заплутався

11

Re: Проблема з кирилицею

https://dertompson.com/2007/01/29/encod … lications/

12

Re: Проблема з кирилицею

Ура, все працює дуже дякую за джерело.

13

Re: Проблема з кирилицею

Якщо все працює, то це добре.  :D  Проте не забувайте, закидати сюди код, який вирішив Вашу проблему. Він може стати в нагоді іншим   :)

14

Re: Проблема з кирилицею

EncodingFilter

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
// Class enconding page on utf-8
public class EncodingFilter implements Filter {

    private String encoding = "utf-8";

    public void doFilter(ServletRequest request,

    ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        request.setCharacterEncoding(encoding);
        filterChain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
        String encodingParam = filterConfig.getInitParameter("encoding");
        if (encodingParam != null) {
            encoding = encodingParam;
        }
    }

    public void destroy() {
        // nothing todo
    }

}

Цей код я вставив у файл сервера = web.xml

<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>
    org.apache.catalina.filters.SetCharacterEncodingFilter
</filter-class>

<init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
</init-param>

</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern></url-pattern>
</filter-mapping>
Подякували: fed_lviv1