记录一次java发送json数据到kafka,中文乱码问题解决

代码实现:

public static void main(String[] args){
	String address = args[0];
	String port = args[1];
	
	new Thread(()->{
	    try{
	    produceToKafka(address,port);
	    }catch(Exception e){
	        system.out.println("写入kafka报错");
	        e.printStackTrace();
	    }
	
	}).start();
}

private static void produceToKafka(String address,String port){
	Properties prop = new Properties();
	properties.put("bootstrap.servers", address+":"+port); // Kafka 集群地址
    properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
    properties.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
 
    // 创建Kafka生产者
    Producer<String, String> producer = new KafkaProducer<>(properties);

    Pojo data = new Pojo();
    data.setName("中文");
    data.setId("sdsdjjweweo");
    .
    .
    .

    ObjectMapper writer = new ObjectMapper ();
    String dataStr = writer.writeValueAsString(data);
    producer.send(new ProducerRecord<String,String>("test_topic",null,dataStr));

    producer.close(); // 关闭生产者
}

Maven文件配置
略
    <build>
        <plugins>
            //打包配置略
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                   <source>1.8</source>
                   <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


问题

在本地运行发送到kafka数据正常,打包在环境上运行出现中文乱码

解决

配置Maven编译配置,设置编译时的编码为utf-8

    <build>
        <plugins>
            //打包配置略
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                   <source>1.8</source>
                   <target>1.8</target>
                   <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值