Tag: utf 8

仅在匹配阈值字节时才在地图中填充字符串值

我有一个tasks列表对象,我正在迭代并将每个任务对象附加到StringBuilder后跟新行,如下所示。 现在,我将继续在同一个字符串构建器中追加任务对象,直到达到60000字节的大小限制。 一旦达到限制,我将把这个字符串填充为map中的值,key将是带有增量索引的文件名。 然后我将重置字符串构建器和其他东西并再次重复此过程。 因此,如果我有一个大tasks对象,那么我将拆分成多个字符串对象,其大小应始终小于60000字节。 我得到了下面的代码,但我总是看到地图中的值大小超过60000字节。 我做错了什么? 此外,我在两个不同的位置填充HashMap – 一个达到限制,另一个是如果未达到限制。 public void populate(final List tasks) { Map holder = new HashMap(); int size = 0; int index = 0; StringBuilder sb = new StringBuilder(); for (Task task : tasks) { sb.append(task).append(System.getProperty(“line.separator”)); size = sb.toString().getBytes(StandardCharsets.UTF_8).length; if (size > 60000) { String fileName = “tasks_info_” + index […]

如何在Swing应用程序中实现UTF-8格式?

在我的Swing聊天应用程序中,我有发送按钮,一个文本区域和一个文本字段。 如果按“发送”按钮,我需要将文本从文本字段发送到文本区域。 它在英语上运行良好,但不是用当地语言表达。 请提供一些想法或一些代码,以帮助我解决这个问题。

为什么这个BufferedReader没有以指定的UTF-8格式读取?

我正在抓几个网站,其中一些包含非拉丁字符和特殊字符,如“用于引号而不是”和’用于撇号而不是’ 。 这是真正的曲线球…… 我将相关文本打印到控制台。 当我在IDE(Netbeans)中运行它时,一切都编码良好。 但是当我在我的电脑上运行时, “I Need Your Help”打印出来: ΓÇ£I Need Your HelpΓÇ¥ … 在有人说我需要将我的JAVA_TOOL_OPTIONS环境变量设置为-Dfile.encoding=UTF8让我说我已经这样做了,这仍然是一个问题。 此外,我不应该指定缓冲读卡器的编码为”UTF-8″覆盖它吗? 这是一些信息: 我正在使用目标平台的JDK 7作为1.7 我正在运行Windows 7机器上运行我正在运行的所有机器并遇到同样的问题(有些没有设置JAVA_TOOL_OPTIONS ,但这似乎没有任何区别)。 我认为它使用的默认编码是Cp1252 … 这是我的代码。 让我知道您是否需要更多信息。 谢谢! /** * Using the given url, this method creates and returns the buffered reader for that url * * @param urlString * @return * @throws MalformedURLException * […]

Spring Boot默认属性编码有变化吗?

我试图找到一种方法来为Spring引导中的application.property文件中的@Value注释访问的属性设置UTF-8编码。 到目前为止,我已经通过创建bean成功地将编码设置为我自己的属性源: @Bean @Primary public PropertySourcesPlaceholderConfigurer placeholderConfigurer(){ PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer(); configurer.setLocation(new ClassPathResource(“app.properties”); configurer.setFileEncoding(“UTF-8”); return configurer; } 这种解决方案存在两个问题 一次,它不适用于Spring Boot默认使用的“application.properties”位置( http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config .html #boot-features-external-config ),我被迫使用不同的文件名。 另一个问题是,通过它我可以手动定义和排序多个源的支持位置(例如,在jar与外部jar属性文件等中),从而重做已经完成的工作。 如何获取对已配置的PropertySourcesPlaceholderConfigurer的引用,并在应用程序初始化的恰当时间更改其文件编码? 编辑:也许我在其他地方犯了错误? 这就是导致实际问题的原因:当我使用application.properties允许用户将个人名称应用于从应用程序发送的电子邮件时: @Value(“${mail.mailerAddress}”) private String mailerAddress; @Value(“${mail.mailerName}”) private String mailerName; // Actual property is Święty Mikołaj private InternetAddress getSender(){ InternetAddress sender = new InternetAddress(); sender.setAddress(mailerAddress); try { sender.setPersonal(mailerName, […]

android,UTF8 – 如何确保UTF8用于共享首选项

如何确保UTF8用于共享首选项菜单? 我有一个Android偏好设置菜单,允许用户设置他们的名字,等等。 我需要知道如何将存储在共享首选项中的数据转换为UTF8格式 首选项菜单在xml中使用utf8编码在res / xml文件夹中名为settings的文件中布局,如下所示: 处理这个的类是 public class PrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{ @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); } @Override protected void onPause() { super.onPause(); // Unregister the listener whenever a key changes getPreferenceScreen().getSharedPreferences() .unregisterOnSharedPreferenceChangeListener(this); } @Override protected void onResume() { super.onResume(); // Set up a listener whenever […]

文件以错误的编码加载:IntelliJ IDEA中的’UTF-8′

在提出问题之前,我在StackOverflow上搜索了一个类似的问题: 文件被加载错误的编码:android studio中的’UTF-8′ 但它没有在那里给出明确的答案。 我的问题是该项目是从网络下载的,它是一个eclipse项目,我用IntelliJ IDEA打开它,并得到这个问题:

Java 8改变了UTF-8解码

我们最近将我们的应用程序从JDK 7迁移到JDK 8.在更改之后,我们遇到了以下代码片段的问题。 String output = new String(byteArray, “UTF-8”); 字节数组可能包含无效的UTF-8字节序列。 在UTF-8解码时,相同的字节数组会在Java 7和Java 8上产生两个不同的字符串。 根据这篇SOpost的答案 ,Java 8“修复”了Java 7中的错误,并用替换字符串替换了无效的UTF-8字节序列,这符合UTF-8规范。 但我们希望坚持使用Java 7的解码字符串版本。 我们尝试在Java 8上使用带有CodingErrorAction的CharsetDecoder作为REPLACE,REPORT和IGNORE。但是,我们无法生成与Java 7相同的字符串。 我们能用合理复杂的技术做到这一点吗?

将resourcebundle读为UTF-8。 getString()方法似乎将编码更改为ISO-8859

我有幸将完整的工作区,项目和文件的编码更改为UTF-8编码。 我们有几个Resourcebundles,用于使用unicode编写特殊字符。 我们还希望通过切换到UTF-8来摆脱那些unicode的东西,所以我也改变了Resourcebundles(.properties)文件的编码并替换了Unicode字符。 我们还有德国资源捆绑和一些像 Ä,Ö,Ü,ß。 ä,ö,ü以及像“或”这样的特殊字符 在浏览器中未正确显示。 例: Resourcebundleentry: executeShellCommand.label =Shellkommandoausführen 结果在浏览器中: 使用Java.util.ResourceBundle.getString(String key)方法读取resourcebundle: public String getLocalizedString(ResourceBundle bundle, String key) { try { System.out.println(“getLocalizedString, key: ” + key + “, resourcebundle: ” + bundle.getString(key)); return bundle.getString(key); } catch (MissingResourceException e) { return key; } } 如果我检查上面的Sysout的输出我得到以下: getLocalizedString, key: executeShellCommand.label, resourcebundle: Shellkommando ausführen 似乎getString(key)方法在将字符串从字符串读取到标准resourcbundleencoding(ISO-8859)时更改字符的编码 。 我试图解决这个问题: […]

将Shift_JIS格式转换为UTF-8格式

我正在尝试将Shift_JIS格式的文件转换为UTF-8格式。 为此,下面是我的方法: 读取Shift_JIS文件 每行的getBytes并将其转换为UTF-8 创建新文件并将UTF-8转换后的值写入其中 问题是在第2步没有发生转换。 我使用下面的代码将Shift_JIS转换为UTF-8: InputStream inputStream = getContentResolver().openInputStream(uri); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); byte[] b = line.getBytes(“Shift_JIS”); String value = new String(b, “UTF-8”); 如果需要任何其他信息,请告诉我。 我有以下2个问题 : 1.还有其他更好的方法(步骤)来进行这种转换吗? 2.为什么上面的代码段无法进行转换? 提前致谢!!!

itext Marathi(印度语)语言显示问题

我正在评估iText作为java swing应用程序的PDFGenerator。 输出应该是“马拉地语”,这是一个类似于印地语的当地印度语,但不一样。 出于评估目的,这是我试图打印的文本: मराठीग्रीटींग्स,मराठीशुभेच्छापत्रे 这是源代码: package pdftest; import java.io.FileOutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.FontFactory; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfWriter; public class CPDFTest { private static String FILE = “c:/will/FirstPdf.pdf”; public static void main(String[] args) { try { Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(FILE)); document.open(); addMetaData(document); addTitlePage(document); document.close(); } […]