0

こんにちは、プリペアド ステートメントを使用して値を mysql に挿入しています。

"c2a054656e6e6973c2a0"値として挿入されている文字列の問題に直面してい" Tennis "ます。トリムを使用して「テニス」の前の空白をトリムしようとしましたが、機能しませんでした。この質問からなぜトリムが機能しないのですか? ソリューションpoNumber.replace(String.valueOf((char) 160), " ").trim();を使用してみましたが、うまくいきました。誰でもこれに対する解決策を与えることができますか?

サンプルコード

CREATE TABLE `news1` (
  `article_id` int(11) NOT NULL AUTO_INCREMENT,
  `article_title` varchar(500) COLLATE utf8_bin NOT NULL,
  `article_subcategory` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`article_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=22 ;

// サンプル カテゴリは「ホーム » テニス」になります

 String category = item.getArticle_category();
                String categoryArray[] = category.split("»");
                preparedStatement = connect
                        .prepareStatement("INSERT INTO news1 VALUES(default,?,?)");
                System.out.println(categoryArray[2].replace(String.valueOf((char) 160), " ")
                        .trim());
                preparedStatement.setString(1, item.getArticle_title());
                preparedStatement.setString(2, categoryArray[2]);
4

1 に答える 1

0

あなたはcategoryArray[2].replace(String.valueOf((char) 160), " ") .trim()sys outでこれをやっていますがpreparedStatement.setString(2, categoryArray[2]);、あなたの声明でやっています

String temp = categoryArray[2].replace(String.valueOf((char) 160), " ") .trim(); 
System.out.println(temp);

tempを使用します

preparedStatement.setString(2, temp);
于 2013-02-13T07:03:23.593 に答える