我的data-config.xml看起来像这样。文件编码为带有BOM的UTF-8。
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.2/dasaran_old"
user="root"
password=""
encoding="UTF-8"/>
<document>
<entity name="user"
query="SELECT CONCAT_WS('_', 1, u.`id`) AS id, u.`id` AS entity_id, 1 AS entity_type, fullname AS title, CONCAT_WS(' ', 'Դպրոց՝ ', s.title, 'դաս.՝', cl.title) AS description FROM das_user u INNER JOIN das_ref_student_to_class_to_school sts ON u.id = sts.student_id INNER JOIN das_school s ON sts.school_id = s.id INNER JOIN das_classes cl ON sts.class_id = cl.id WHERE u.role = 'student'">
</entity>
</document>
</dataConfig>
从MySQL中提取的unicode数据是可以的。但是查询中的unicode字符没有作为Unicode插入到Solr索引中。
我正在收到这样的文件。
<doc>
<str name="description">?????? 65 ???.? 5-1</str>
<int name="entity_id">18126</int>
<int name="entity_type">1</int>
<str name="general">Ռուբեն Վարդանյան Արմենի</str>
<str name="id">[B@1bc6e3ce</str>
<str name="title">Ռուբեն Վարդանյան Արմենի</str>
</doc>
答案 0 :(得分:0)
我认为data-config.xml上的编码与jdbc连接上使用的编码无关,您应该将其指定为url参数,请参阅this question
中的详细信息参数是:
jdbc:mysql://localhost:3306/administer?characterEncoding=utf8